summaryrefslogtreecommitdiffstats
path: root/Source/cmGlobalNinjaGenerator.cxx
diff options
context:
space:
mode:
authorMarc Chevrier <marc.chevrier@gmail.com>2023-07-01 12:20:15 (GMT)
committerMarc Chevrier <marc.chevrier@gmail.com>2023-07-17 13:55:58 (GMT)
commit3c685a578a44063bb027787426d2c8b7202a7979 (patch)
tree7d531d9c9f571723f827beb4e762f5d422aab1d8 /Source/cmGlobalNinjaGenerator.cxx
parenta28217eb8c3c8fd6287661dc3b4bc56a14e0d019 (diff)
downloadCMake-3c685a578a44063bb027787426d2c8b7202a7979.zip
CMake-3c685a578a44063bb027787426d2c8b7202a7979.tar.gz
CMake-3c685a578a44063bb027787426d2c8b7202a7979.tar.bz2
LINK_OPTIONS: ensure correct dollar escaping
Ensure correct escaping for Ninja and Makefile generators. Fixes: #25049
Diffstat (limited to 'Source/cmGlobalNinjaGenerator.cxx')
-rw-r--r--Source/cmGlobalNinjaGenerator.cxx12
1 files changed, 6 insertions, 6 deletions
diff --git a/Source/cmGlobalNinjaGenerator.cxx b/Source/cmGlobalNinjaGenerator.cxx
index e405909..71084cc 100644
--- a/Source/cmGlobalNinjaGenerator.cxx
+++ b/Source/cmGlobalNinjaGenerator.cxx
@@ -181,14 +181,13 @@ std::string cmGlobalNinjaGenerator::EncodeRuleName(std::string const& name)
return encoded;
}
-std::string cmGlobalNinjaGenerator::EncodeLiteral(const std::string& lit)
+std::string cmGlobalNinjaGenerator::GetEncodedLiteral(const std::string& lit)
{
std::string result = lit;
- EncodeLiteralInplace(result);
- return result;
+ return this->EncodeLiteral(result);
}
-void cmGlobalNinjaGenerator::EncodeLiteralInplace(std::string& lit)
+std::string& cmGlobalNinjaGenerator::EncodeLiteral(std::string& lit)
{
cmSystemTools::ReplaceString(lit, "$", "$$");
cmSystemTools::ReplaceString(lit, "\n", "$\n");
@@ -196,6 +195,7 @@ void cmGlobalNinjaGenerator::EncodeLiteralInplace(std::string& lit)
cmSystemTools::ReplaceString(lit, cmStrCat('$', this->GetCMakeCFGIntDir()),
this->GetCMakeCFGIntDir());
}
+ return lit;
}
std::string cmGlobalNinjaGenerator::EncodePath(const std::string& path)
@@ -207,7 +207,7 @@ std::string cmGlobalNinjaGenerator::EncodePath(const std::string& path)
else
std::replace(result.begin(), result.end(), '/', '\\');
#endif
- this->EncodeLiteralInplace(result);
+ this->EncodeLiteral(result);
cmSystemTools::ReplaceString(result, " ", "$ ");
cmSystemTools::ReplaceString(result, ":", "$:");
return result;
@@ -394,7 +394,7 @@ void cmGlobalNinjaGenerator::WriteCustomCommandBuild(
#endif
vars["COMMAND"] = std::move(cmd);
}
- vars["DESC"] = this->EncodeLiteral(description);
+ vars["DESC"] = this->GetEncodedLiteral(description);
if (restat) {
vars["restat"] = "1";
}