mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-01 11:22:21 -06:00
Ninja: Fix escaping of path to depfile
Replace the dedicated and non-portable escaping code with use of our standard escaping logic.
This commit is contained in:
@@ -146,13 +146,6 @@ std::string cmGlobalNinjaGenerator::EncodePath(const std::string& path)
|
||||
return EncodeLiteral(result);
|
||||
}
|
||||
|
||||
std::string cmGlobalNinjaGenerator::EncodeDepfileSpace(const std::string& path)
|
||||
{
|
||||
std::string result = path;
|
||||
cmSystemTools::ReplaceString(result, " ", "\\ ");
|
||||
return result;
|
||||
}
|
||||
|
||||
void cmGlobalNinjaGenerator::WriteBuild(
|
||||
std::ostream& os, const std::string& comment, const std::string& rule,
|
||||
const cmNinjaDeps& outputs, const cmNinjaDeps& implicitOuts,
|
||||
|
||||
@@ -75,7 +75,6 @@ public:
|
||||
static std::string EncodeIdent(const std::string& ident, std::ostream& vars);
|
||||
static std::string EncodeLiteral(const std::string& lit);
|
||||
std::string EncodePath(const std::string& path);
|
||||
static std::string EncodeDepfileSpace(const std::string& path);
|
||||
|
||||
cmLinkLineComputer* CreateLinkLineComputer(
|
||||
cmOutputConverter* outputConverter,
|
||||
|
||||
@@ -822,8 +822,8 @@ void cmNinjaTargetGenerator::WriteObjectBuildStatement(
|
||||
vars["DEFINES"] = this->ComputeDefines(source, language);
|
||||
vars["INCLUDES"] = this->GetIncludes(language);
|
||||
if (!this->NeedDepTypeMSVC(language)) {
|
||||
vars["DEP_FILE"] =
|
||||
cmGlobalNinjaGenerator::EncodeDepfileSpace(objectFileName + ".d");
|
||||
vars["DEP_FILE"] = this->GetLocalGenerator()->ConvertToOutputFormat(
|
||||
objectFileName + ".d", cmOutputConverter::SHELL);
|
||||
}
|
||||
|
||||
this->ExportObjectCompileCommand(
|
||||
@@ -920,8 +920,8 @@ void cmNinjaTargetGenerator::WriteObjectBuildStatement(
|
||||
vars["INCLUDES"] = sourceDirectoryFlag + " " + vars["INCLUDES"];
|
||||
|
||||
// Explicit preprocessing always uses a depfile.
|
||||
ppVars["DEP_FILE"] =
|
||||
cmGlobalNinjaGenerator::EncodeDepfileSpace(ppFileName + ".d");
|
||||
ppVars["DEP_FILE"] = this->GetLocalGenerator()->ConvertToOutputFormat(
|
||||
ppFileName + ".d", cmOutputConverter::SHELL);
|
||||
// The actual compilation does not need a depfile because it
|
||||
// depends on the already-preprocessed source.
|
||||
vars.erase("DEP_FILE");
|
||||
|
||||
Reference in New Issue
Block a user