Ninja: Shell encode paths used in "cd" commands
This commit is contained in:
parent
cea03e632b
commit
43b1d8bad0
|
@ -325,12 +325,12 @@ void cmLocalNinjaGenerator::AppendCustomCommandLines(const cmCustomCommand *cc,
|
|||
{
|
||||
cmCustomCommandGenerator ccg(*cc, this->GetConfigName(), this->Makefile);
|
||||
if (ccg.GetNumberOfCommands() > 0) {
|
||||
const char* wd = cc->GetWorkingDirectory();
|
||||
if (!wd)
|
||||
wd = this->GetMakefile()->GetStartOutputDirectory();
|
||||
|
||||
std::ostringstream cdCmd;
|
||||
cdCmd << "cd ";
|
||||
if (const char* wd = cc->GetWorkingDirectory())
|
||||
cdCmd << wd;
|
||||
else
|
||||
cdCmd << this->GetMakefile()->GetStartOutputDirectory();
|
||||
cdCmd << "cd " << this->ConvertToOutputFormat(wd, SHELL);
|
||||
cmdLines.push_back(cdCmd.str());
|
||||
}
|
||||
for (unsigned i = 0; i != ccg.GetNumberOfCommands(); ++i) {
|
||||
|
|
|
@ -377,9 +377,12 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement()
|
|||
|
||||
// If we have any PRE_LINK commands, we need to go back to HOME_OUTPUT for
|
||||
// the link commands.
|
||||
if (!preLinkCmdLines.empty())
|
||||
preLinkCmdLines.push_back(std::string("cd ") +
|
||||
this->GetMakefile()->GetHomeOutputDirectory());
|
||||
if (!preLinkCmdLines.empty()) {
|
||||
std::string path = this->GetLocalGenerator()->ConvertToOutputFormat(
|
||||
this->GetMakefile()->GetHomeOutputDirectory(),
|
||||
cmLocalGenerator::SHELL);
|
||||
preLinkCmdLines.push_back("cd " + path);
|
||||
}
|
||||
|
||||
vars["PRE_LINK"] =
|
||||
this->GetLocalGenerator()->BuildCommandLine(preLinkCmdLines);
|
||||
|
|
Loading…
Reference in New Issue