Browse Source

BUG: Juse use cmake -E echo instead of the native echo on MinGW makefiles. The echo; hack did not work when running from ctest.

Brad King 19 years ago
parent
commit
69356d8a7a

+ 3 - 7
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;
 }
 

+ 3 - 1
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<std::string>& 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
           {

+ 3 - 2
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;