Browse Source

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 years ago
parent
commit
e7bd5fcd19
4 changed files with 62 additions and 46 deletions
  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(),