فهرست منبع

ENH: Added support for spaces in the output directory names. Spaces in the input directory name may work also, but are untested.

Brad King 24 سال پیش
والد
کامیت
e7bd5fcd19
4فایلهای تغییر یافته به همراه62 افزوده شده و 46 حذف شده
  1. 14 10
      Source/cmCableCommand.cxx
  2. 23 17
      Source/cmDSPMakefile.cxx
  3. 23 17
      Source/cmDSPWriter.cxx
  4. 2 2
      Source/cmUtilitySourceCommand.cxx

+ 14 - 10
Source/cmCableCommand.cxx

@@ -81,29 +81,33 @@ void cmCableCommand::SetupCableData()
   
   // We must add a custom rule to cause the cable_config.xml to be re-built
   // when it is removed.  Rebuilding it means re-running CMake.
-  std::string cMakeLists = m_Makefile->GetStartDirectory();
+  std::string cMakeLists = "\"";
+  cMakeLists += m_Makefile->GetStartDirectory();
   cMakeLists += "/";
-  cMakeLists += "CMakeLists.txt";
+  cMakeLists += "CMakeLists.txt\"";
 
   std::string command;
 #if defined(_WIN32) && !defined(__CYGWIN__)
-  command = m_Makefile->GetHomeDirectory();  
-  command += "/CMake/Source/CMakeSetupCMD ";
+  command = "\"";
+  command += m_Makefile->GetHomeDirectory();
+  command += "/CMake/Source/CMakeSetupCMD\" ";
   command += cMakeLists;
   command += " -DSP";
 #else
-  command = m_Makefile->GetHomeOutputDirectory();  
-  command += "/CMake/Source/CMakeBuildTargets ";
+  command = "\"";
+  command += m_Makefile->GetHomeOutputDirectory();  
+  command += "/CMake/Source/CMakeBuildTargets\" ";
   command += cMakeLists;
 #endif
-  command += " -H";
+  command += " -H\"";
   command += m_Makefile->GetHomeDirectory();
-  command += " -S";
+  command += "\" -S\"";
   command += m_Makefile->GetStartDirectory();
-  command += " -O";
+  command += "\" -O\"";
   command += m_Makefile->GetStartOutputDirectory();
-  command += " -B";
+  command += "\" -B\"";
   command += m_Makefile->GetHomeOutputDirectory();
+  command += "\"";
 
   std::vector<std::string> depends;
   m_Makefile->AddCustomCommand(cMakeLists.c_str(), 

+ 23 - 17
Source/cmDSPMakefile.cxx

@@ -157,20 +157,23 @@ void cmDSPMakefile::WriteDSPBuildRule(std::ostream& fout)
 {
   std::string dspname = *(m_CreatedProjectNames.end()-1);
   dspname += ".dsp";
-  std::string makefileIn = m_Makefile->GetStartDirectory();
+  std::string makefileIn = "\"";
+  makefileIn += m_Makefile->GetStartDirectory();
   makefileIn += "/";
-  makefileIn += "CMakeLists.txt";
-  std::string dsprule = m_Makefile->GetHomeDirectory();
-  dsprule += "/CMake/Source/CMakeSetupCMD ";
+  makefileIn += "CMakeLists.txt\"";
+  std::string dsprule = "\"";
+  dsprule += m_Makefile->GetHomeDirectory();
+  dsprule += "/CMake/Source/CMakeSetupCMD\" ";
   dsprule += makefileIn;
-  dsprule += " -DSP -H";
+  dsprule += " -DSP -H\"";
   dsprule += m_Makefile->GetHomeDirectory();
-  dsprule += " -S";
+  dsprule += "\" -S\"";
   dsprule += m_Makefile->GetStartDirectory();
-  dsprule += " -O";
+  dsprule += "\" -O\"";
   dsprule += m_Makefile->GetStartOutputDirectory();
-  dsprule += " -B";
+  dsprule += "\" -B\"";
   dsprule += m_Makefile->GetHomeOutputDirectory();
+  dsprule += "\"";
 
   std::set<std::string> depends;
   std::set<std::string> outputs;
@@ -186,20 +189,23 @@ void cmDSPMakefile::AddDSPBuildRule(cmSourceGroup& sourceGroup)
 {
   std::string dspname = *(m_CreatedProjectNames.end()-1);
   dspname += ".dsp";
-  std::string makefileIn = m_Makefile->GetStartDirectory();
+  std::string makefileIn = "\"";
+  makefileIn += m_Makefile->GetStartDirectory();
   makefileIn += "/";
-  makefileIn += "CMakeLists.txt";
-  std::string dsprule = m_Makefile->GetHomeDirectory();
-  dsprule += "/CMake/Source/CMakeSetupCMD ";
+  makefileIn += "CMakeLists.txt\"";
+  std::string dsprule = "\"";
+  dsprule += m_Makefile->GetHomeDirectory();
+  dsprule += "/CMake/Source/CMakeSetupCMD\" ";
   dsprule += makefileIn;
-  dsprule += " -DSP -H";
+  dsprule += " -DSP -H\"";
   dsprule += m_Makefile->GetHomeDirectory();
-  dsprule += " -S";
+  dsprule += "\" -S\"";
   dsprule += m_Makefile->GetStartDirectory();
-  dsprule += " -O";
+  dsprule += "\" -O\"";
   dsprule += m_Makefile->GetStartOutputDirectory();
-  dsprule += " -B";
+  dsprule += "\" -B\"";
   dsprule += m_Makefile->GetHomeOutputDirectory();
+  dsprule += "\"";
 
   std::vector<std::string> depends;
   std::vector<std::string> outputs;
@@ -316,7 +322,7 @@ void cmDSPMakefile::WriteCustomRule(std::ostream& fout,
       for(std::set<std::string>::const_iterator d = depends.begin();
           d != depends.end(); ++d)
         {
-        fout << " \"" << d->c_str() << "\"";
+        fout << " " << d->c_str();
         }
       fout << "\n  " << command << "\n\n";
       }

+ 23 - 17
Source/cmDSPWriter.cxx

@@ -157,20 +157,23 @@ void cmDSPMakefile::WriteDSPBuildRule(std::ostream& fout)
 {
   std::string dspname = *(m_CreatedProjectNames.end()-1);
   dspname += ".dsp";
-  std::string makefileIn = m_Makefile->GetStartDirectory();
+  std::string makefileIn = "\"";
+  makefileIn += m_Makefile->GetStartDirectory();
   makefileIn += "/";
-  makefileIn += "CMakeLists.txt";
-  std::string dsprule = m_Makefile->GetHomeDirectory();
-  dsprule += "/CMake/Source/CMakeSetupCMD ";
+  makefileIn += "CMakeLists.txt\"";
+  std::string dsprule = "\"";
+  dsprule += m_Makefile->GetHomeDirectory();
+  dsprule += "/CMake/Source/CMakeSetupCMD\" ";
   dsprule += makefileIn;
-  dsprule += " -DSP -H";
+  dsprule += " -DSP -H\"";
   dsprule += m_Makefile->GetHomeDirectory();
-  dsprule += " -S";
+  dsprule += "\" -S\"";
   dsprule += m_Makefile->GetStartDirectory();
-  dsprule += " -O";
+  dsprule += "\" -O\"";
   dsprule += m_Makefile->GetStartOutputDirectory();
-  dsprule += " -B";
+  dsprule += "\" -B\"";
   dsprule += m_Makefile->GetHomeOutputDirectory();
+  dsprule += "\"";
 
   std::set<std::string> depends;
   std::set<std::string> outputs;
@@ -186,20 +189,23 @@ void cmDSPMakefile::AddDSPBuildRule(cmSourceGroup& sourceGroup)
 {
   std::string dspname = *(m_CreatedProjectNames.end()-1);
   dspname += ".dsp";
-  std::string makefileIn = m_Makefile->GetStartDirectory();
+  std::string makefileIn = "\"";
+  makefileIn += m_Makefile->GetStartDirectory();
   makefileIn += "/";
-  makefileIn += "CMakeLists.txt";
-  std::string dsprule = m_Makefile->GetHomeDirectory();
-  dsprule += "/CMake/Source/CMakeSetupCMD ";
+  makefileIn += "CMakeLists.txt\"";
+  std::string dsprule = "\"";
+  dsprule += m_Makefile->GetHomeDirectory();
+  dsprule += "/CMake/Source/CMakeSetupCMD\" ";
   dsprule += makefileIn;
-  dsprule += " -DSP -H";
+  dsprule += " -DSP -H\"";
   dsprule += m_Makefile->GetHomeDirectory();
-  dsprule += " -S";
+  dsprule += "\" -S\"";
   dsprule += m_Makefile->GetStartDirectory();
-  dsprule += " -O";
+  dsprule += "\" -O\"";
   dsprule += m_Makefile->GetStartOutputDirectory();
-  dsprule += " -B";
+  dsprule += "\" -B\"";
   dsprule += m_Makefile->GetHomeOutputDirectory();
+  dsprule += "\"";
 
   std::vector<std::string> depends;
   std::vector<std::string> outputs;
@@ -316,7 +322,7 @@ void cmDSPMakefile::WriteCustomRule(std::ostream& fout,
       for(std::set<std::string>::const_iterator d = depends.begin();
           d != depends.end(); ++d)
         {
-        fout << " \"" << d->c_str() << "\"";
+        fout << " " << d->c_str();
         }
       fout << "\n  " << command << "\n\n";
       }

+ 2 - 2
Source/cmUtilitySourceCommand.cxx

@@ -70,8 +70,8 @@ bool cmUtilitySourceCommand::Invoke(std::vector<std::string>& args)
   
   // Construct the cache entry for the executable's location.
   std::string utilityExecutable =
-    utilityDirectory+"/"+cmakeCFGout+"/"
-    +utilityName+cmSystemTools::GetExecutableExtension();
+    "\""+utilityDirectory+"/"+cmakeCFGout+"/"
+    +utilityName+cmSystemTools::GetExecutableExtension()+"\"";
   
   // Enter the value into the cache.
   cmCacheManager::GetInstance()->AddCacheEntry(cacheEntry.c_str(),