diff --git a/Source/cmGlobalMinGWMakefileGenerator.cxx b/Source/cmGlobalMinGWMakefileGenerator.cxx index c024f6fac..30cb9483b 100644 --- a/Source/cmGlobalMinGWMakefileGenerator.cxx +++ b/Source/cmGlobalMinGWMakefileGenerator.cxx @@ -70,13 +70,9 @@ cmLocalGenerator *cmGlobalMinGWMakefileGenerator::CreateLocalGenerator() // // @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;"); + // it runs but the quotes are displayed. Instead just use cmake to + // echo. + lg->SetNativeEchoCommand("@$(CMAKE_COMMAND) -E echo ", false); return lg; } diff --git a/Source/cmLocalUnixMakefileGenerator3.cxx b/Source/cmLocalUnixMakefileGenerator3.cxx index 34fbc26b5..059de8587 100644 --- a/Source/cmLocalUnixMakefileGenerator3.cxx +++ b/Source/cmLocalUnixMakefileGenerator3.cxx @@ -51,6 +51,7 @@ cmLocalUnixMakefileGenerator3::cmLocalUnixMakefileGenerator3() this->SkipPreprocessedSourceRules = false; this->SkipAssemblySourceRules = false; this->NativeEchoCommand = "@echo "; + this->NativeEchoWindows = true; } //---------------------------------------------------------------------------- @@ -1046,7 +1047,8 @@ cmLocalUnixMakefileGenerator3::AppendEcho(std::vector& commands, { // Use the native echo command. cmd = this->NativeEchoCommand; - cmd += this->EscapeForShell(line.c_str(), false, true); + cmd += this->EscapeForShell(line.c_str(), false, + this->NativeEchoWindows); } else { diff --git a/Source/cmLocalUnixMakefileGenerator3.h b/Source/cmLocalUnixMakefileGenerator3.h index e79065d15..5b9d7fdc2 100644 --- a/Source/cmLocalUnixMakefileGenerator3.h +++ b/Source/cmLocalUnixMakefileGenerator3.h @@ -135,8 +135,8 @@ public: * 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; } + void SetNativeEchoCommand(const char* cmd, bool isWindows) + { this->NativeEchoCommand = cmd; this->NativeEchoWindows = isWindows; } /** * Set the string used to include one makefile into another default @@ -341,6 +341,7 @@ private: std::string LibraryOutputPath; std::string ConfigurationName; std::string NativeEchoCommand; + bool NativeEchoWindows; bool DefineWindowsNULL; bool UnixCD; bool PassMakeflags;