BUG: Hack to make echo command work properly in mingw32-make.
This commit is contained in:
parent
5341711012
commit
7e92f0b4e4
|
@ -61,6 +61,22 @@ cmLocalGenerator *cmGlobalMinGWMakefileGenerator::CreateLocalGenerator()
|
||||||
lg->SetIgnoreLibPrefix(true);
|
lg->SetIgnoreLibPrefix(true);
|
||||||
lg->SetPassMakeflags(false);
|
lg->SetPassMakeflags(false);
|
||||||
lg->SetUnixCD(true);
|
lg->SetUnixCD(true);
|
||||||
|
|
||||||
|
// mingw32-make has trouble running code like
|
||||||
|
//
|
||||||
|
// @echo message with spaces
|
||||||
|
//
|
||||||
|
// If quotes are added
|
||||||
|
//
|
||||||
|
// @echo "message with spaces"
|
||||||
|
//
|
||||||
|
// it runs but the quotes are displayed. Instead we can separate
|
||||||
|
// with a semicolon
|
||||||
|
//
|
||||||
|
// @echo;message with spaces
|
||||||
|
//
|
||||||
|
// to hack around the problem.
|
||||||
|
lg->SetNativeEchoCommand("@echo;");
|
||||||
return lg;
|
return lg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -50,6 +50,7 @@ cmLocalUnixMakefileGenerator3::cmLocalUnixMakefileGenerator3()
|
||||||
this->ColorMakefile = false;
|
this->ColorMakefile = false;
|
||||||
this->SkipPreprocessedSourceRules = false;
|
this->SkipPreprocessedSourceRules = false;
|
||||||
this->SkipAssemblySourceRules = false;
|
this->SkipAssemblySourceRules = false;
|
||||||
|
this->NativeEchoCommand = "@echo ";
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
|
@ -1044,7 +1045,7 @@ cmLocalUnixMakefileGenerator3::AppendEcho(std::vector<std::string>& commands,
|
||||||
if(color_name.empty())
|
if(color_name.empty())
|
||||||
{
|
{
|
||||||
// Use the native echo command.
|
// Use the native echo command.
|
||||||
cmd = "@echo ";
|
cmd = this->NativeEchoCommand;
|
||||||
cmd += this->EscapeForShell(line.c_str(), false, true);
|
cmd += this->EscapeForShell(line.c_str(), false, true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -130,6 +130,14 @@ public:
|
||||||
*/
|
*/
|
||||||
void SetSilentNoColon(bool v) {this->SilentNoColon = v;}
|
void SetSilentNoColon(bool v) {this->SilentNoColon = v;}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the command to use for native make shell echo. The value
|
||||||
|
* should include all parts of the command up to the beginning of
|
||||||
|
* the message (including a whitespace separator).
|
||||||
|
*/
|
||||||
|
void SetNativeEchoCommand(const char* cmd)
|
||||||
|
{ this->NativeEchoCommand = cmd; }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the string used to include one makefile into another default
|
* Set the string used to include one makefile into another default
|
||||||
* is include.
|
* is include.
|
||||||
|
@ -332,6 +340,7 @@ private:
|
||||||
std::string ExecutableOutputPath;
|
std::string ExecutableOutputPath;
|
||||||
std::string LibraryOutputPath;
|
std::string LibraryOutputPath;
|
||||||
std::string ConfigurationName;
|
std::string ConfigurationName;
|
||||||
|
std::string NativeEchoCommand;
|
||||||
bool DefineWindowsNULL;
|
bool DefineWindowsNULL;
|
||||||
bool UnixCD;
|
bool UnixCD;
|
||||||
bool PassMakeflags;
|
bool PassMakeflags;
|
||||||
|
|
Loading…
Reference in New Issue