Ninja: Shell encode various CMake invocations
This commit is contained in:
parent
43b1d8bad0
commit
0643fee2fe
|
@ -743,12 +743,19 @@ void cmGlobalNinjaGenerator::WriteTargetAll(std::ostream& os)
|
|||
|
||||
void cmGlobalNinjaGenerator::WriteTargetRebuildManifest(std::ostream& os)
|
||||
{
|
||||
cmMakefile* mfRoot = this->LocalGenerators[0]->GetMakefile();
|
||||
cmLocalGenerator *lg = this->LocalGenerators[0];
|
||||
cmMakefile* mfRoot = lg->GetMakefile();
|
||||
|
||||
std::ostringstream cmd;
|
||||
cmd << mfRoot->GetRequiredDefinition("CMAKE_COMMAND")
|
||||
<< " -H" << mfRoot->GetHomeDirectory()
|
||||
<< " -B" << mfRoot->GetHomeOutputDirectory();
|
||||
cmd << lg->ConvertToOutputFormat(
|
||||
mfRoot->GetRequiredDefinition("CMAKE_COMMAND"),
|
||||
cmLocalGenerator::SHELL)
|
||||
<< " -H"
|
||||
<< lg->ConvertToOutputFormat(mfRoot->GetHomeDirectory(),
|
||||
cmLocalGenerator::SHELL)
|
||||
<< " -B"
|
||||
<< lg->ConvertToOutputFormat(mfRoot->GetHomeOutputDirectory(),
|
||||
cmLocalGenerator::SHELL);
|
||||
WriteRule(*this->RulesFileStream,
|
||||
"RERUN_CMAKE",
|
||||
cmd.str(),
|
||||
|
|
|
@ -198,7 +198,9 @@ cmNinjaNormalTargetGenerator
|
|||
|
||||
if (this->TargetNameOut != this->TargetNameReal) {
|
||||
std::string cmakeCommand =
|
||||
this->GetMakefile()->GetRequiredDefinition("CMAKE_COMMAND");
|
||||
this->GetLocalGenerator()->ConvertToOutputFormat(
|
||||
this->GetMakefile()->GetRequiredDefinition("CMAKE_COMMAND"),
|
||||
cmLocalGenerator::SHELL);
|
||||
if (targetType == cmTarget::EXECUTABLE)
|
||||
this->GetGlobalGenerator()->AddRule("CMAKE_SYMLINK_EXECUTABLE",
|
||||
cmakeCommand +
|
||||
|
@ -238,7 +240,9 @@ cmNinjaNormalTargetGenerator
|
|||
// We have archive link commands set. First, delete the existing archive.
|
||||
std::vector<std::string> linkCmds;
|
||||
std::string cmakeCommand =
|
||||
this->GetMakefile()->GetRequiredDefinition("CMAKE_COMMAND");
|
||||
this->GetLocalGenerator()->ConvertToOutputFormat(
|
||||
this->GetMakefile()->GetRequiredDefinition("CMAKE_COMMAND"),
|
||||
cmLocalGenerator::SHELL);
|
||||
linkCmds.push_back(cmakeCommand + " -E remove $out");
|
||||
|
||||
// TODO: Use ARCHIVE_APPEND for archives over a certain size.
|
||||
|
|
Loading…
Reference in New Issue