Browse Source

BUG: Fix for spaces in path to build directory with new progress stuff.

Brad King 19 years ago
parent
commit
15535c3f60

+ 14 - 5
Source/cmGlobalUnixMakefileGenerator3.cxx

@@ -699,11 +699,15 @@ cmGlobalUnixMakefileGenerator3
           
           // Write the rule.
           commands.clear();
+          std::string progressDir =
+            lg->GetMakefile()->GetHomeOutputDirectory();
+          progressDir += "/CMakeFiles";
           cmOStringStream progCmd;
           progCmd << "$(CMAKE_COMMAND) -E cmake_progress_start ";
-          progCmd << lg->GetMakefile()->GetHomeOutputDirectory();
-          progCmd << "/CMakeFiles ";
-          progCmd << 
+          progCmd << lg->Convert(progressDir.c_str(),
+                                 cmLocalGenerator::FULL,
+                                 cmLocalGenerator::SHELL);
+          progCmd << " " <<
             (100*this->GetTargetTotalNumberOfSourceFiles(t->second))/
             this->GetNumberOfSourceFiles();
           commands.push_back(progCmd.str());
@@ -824,10 +828,15 @@ cmGlobalUnixMakefileGenerator3
         localName += "/all";
         depends.clear();
 
+        std::string progressDir =
+          lg->GetMakefile()->GetHomeOutputDirectory();
+        progressDir += "/CMakeFiles";
         cmOStringStream progCmd;
         progCmd << "$(CMAKE_COMMAND) -E cmake_progress_report ";
-        progCmd << lg->GetMakefile()->GetHomeOutputDirectory();
-        progCmd << "/CMakeFiles ";
+        progCmd << lg->Convert(progressDir.c_str(),
+                               cmLocalGenerator::FULL,
+                               cmLocalGenerator::SHELL);
+        progCmd << " ";
         std::vector<int> &progFiles = lg->ProgressFiles[t->first];
         for (std::vector<int>::iterator i = progFiles.begin();
              i != progFiles.end(); ++i)

+ 12 - 8
Source/cmLocalUnixMakefileGenerator3.cxx

@@ -1410,12 +1410,14 @@ void cmLocalUnixMakefileGenerator3
 
   if (!this->Parent)
     {
-    cmGlobalUnixMakefileGenerator3 *gg = 
-      static_cast<cmGlobalUnixMakefileGenerator3*>(this->GlobalGenerator);
+    std::string progressDir = this->Makefile->GetHomeOutputDirectory();
+    progressDir += "/CMakeFiles";
     cmOStringStream progCmd;
     progCmd << "$(CMAKE_COMMAND) -E cmake_progress_start ";
-    progCmd << this->Makefile->GetHomeOutputDirectory();
-    progCmd << "/CMakeFiles 100";
+    progCmd << this->Convert(progressDir.c_str(),
+                             cmLocalGenerator::FULL,
+                             cmLocalGenerator::SHELL);
+    progCmd << " 100";
     commands.push_back(progCmd.str());
     }
 
@@ -1426,12 +1428,14 @@ void cmLocalUnixMakefileGenerator3
                                 this->Makefile->GetStartOutputDirectory());
   if (!this->Parent)
     {
-    cmGlobalUnixMakefileGenerator3 *gg = 
-      static_cast<cmGlobalUnixMakefileGenerator3*>(this->GlobalGenerator);
+    std::string progressDir = this->Makefile->GetHomeOutputDirectory();
+    progressDir += "/CMakeFiles";
     cmOStringStream progCmd;
     progCmd << "$(CMAKE_COMMAND) -E cmake_progress_start ";
-    progCmd << this->Makefile->GetHomeOutputDirectory();
-    progCmd << "/CMakeFiles 0";
+    progCmd << this->Convert(progressDir.c_str(),
+                             cmLocalGenerator::FULL,
+                             cmLocalGenerator::SHELL);
+    progCmd << " 0";
     commands.push_back(progCmd.str());
     }
   this->WriteMakeRule(ruleFileStream, "The main all target", "all",

+ 6 - 3
Source/cmMakefileTargetGenerator.cxx

@@ -387,11 +387,14 @@ cmMakefileTargetGenerator
   int prog = gg->ShouldAddProgressRule();
   if (prog)
     {
+    std::string progressDir = this->Makefile->GetHomeOutputDirectory();
+    progressDir += "/CMakeFiles";
     cmOStringStream progCmd;
     progCmd << "$(CMAKE_COMMAND) -E cmake_progress_report ";
-    progCmd << this->Makefile->GetHomeOutputDirectory();
-    progCmd << "/CMakeFiles ";
-    progCmd << prog;
+    progCmd << this->LocalGenerator->Convert(progressDir.c_str(),
+                                             cmLocalGenerator::FULL,
+                                             cmLocalGenerator::SHELL);
+    progCmd << " " << prog;
     commands.push_back(progCmd.str());
     this->LocalGenerator->ProgressFiles[this->Target->GetName()].
       push_back(prog);