Browse Source

BUG: fix path problems

Bill Hoffman 23 years ago
parent
commit
83d273334a

+ 1 - 1
Modules/CMakeDetermineCCompiler.cmake

@@ -7,7 +7,7 @@
 
 IF(NOT CMAKE_C_COMPILER)
   FIND_PROGRAM(CMAKE_C_COMPILER_FULLPATH NAMES $ENV{CC} ${CMAKE_GENERATOR_CC} gcc cc cl bcc )
-  GET_FILENAME_COMPONENT(CMAKE_C_COMPILER ${CMAKE_C_COMPILER_FULLPATH} NAME_WE)
+  GET_FILENAME_COMPONENT(CMAKE_C_COMPILER ${CMAKE_C_COMPILER_FULLPATH} NAME)
   # set this to notfound right after so that it is searched for each time this
   # file is included
   SET(CMAKE_C_COMPILER_FULLPATH NOTFOUND CACHE INTERNAL "full path to c compiler" FORCE) 

+ 1 - 1
Modules/CMakeDetermineCXXCompiler.cmake

@@ -7,7 +7,7 @@
 
 IF(NOT CMAKE_CXX_COMPILER)
   FIND_PROGRAM(CMAKE_CXX_COMPILER_FULLPATH NAMES $ENV{CXX} ${CMAKE_GENERATOR_CXX} c++ g++ CC aCC cl bcc )
-  GET_FILENAME_COMPONENT(CMAKE_CXX_COMPILER ${CMAKE_CXX_COMPILER_FULLPATH} NAME_WE)
+  GET_FILENAME_COMPONENT(CMAKE_CXX_COMPILER ${CMAKE_CXX_COMPILER_FULLPATH} NAME)
   SET(CMAKE_CXX_COMPILER ${CMAKE_CXX_COMPILER} CACHE STRING "C++ compiler")
 ENDIF(NOT CMAKE_CXX_COMPILER)
 MARK_AS_ADVANCED(CMAKE_CXX_COMPILER)

+ 12 - 3
Source/cmLocalUnixMakefileGenerator.cxx

@@ -668,12 +668,10 @@ struct RuleVariables
 
 static RuleVariables ruleReplaceVars[] =
 {
-  {"<CMAKE_CXX_COMPILER>", "CMAKE_CXX_COMPILER"},
   {"<CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS>", "CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS"},
   {"<CMAKE_SHARED_MODULE_CREATE_CXX_FLAGS>", "CMAKE_SHARED_MODULE_CREATE_CXX_FLAGS"}, 
   {"<CMAKE_CXX_LINK_FLAGS>", "CMAKE_CXX_LINK_FLAGS"},
 
-  {"<CMAKE_C_COMPILER>", "CMAKE_C_COMPILER"},
   {"<CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS>", "CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS"},
   {"<CMAKE_SHARED_MODULE_CREATE_C_FLAGS>", "CMAKE_SHARED_MODULE_CREATE_C_FLAGS"}, 
   {"<CMAKE_C_LINK_FLAGS>", "CMAKE_C_LINK_FLAGS"},
@@ -698,6 +696,12 @@ cmLocalUnixMakefileGenerator::ExpandRuleVariables(std::string& s,
                                                   const char* targetBase,
                                                   const char* linkFlags)
 { 
+  std::string cxxcompiler = this->ConvertToOutputForExisting(
+    this->GetSafeDefinition("CMAKE_CXX_COMPILER"));
+  std::string ccompiler = this->ConvertToOutputForExisting(
+    this->GetSafeDefinition("CMAKE_C_COMPILER"));
+  cmSystemTools::ReplaceString(s, "<CMAKE_CXX_COMPILER>", cxxcompiler.c_str());
+  cmSystemTools::ReplaceString(s, "<CMAKE_C_COMPILER>", ccompiler.c_str());
   if(linkFlags)
     {
     cmSystemTools::ReplaceString(s, "<LINK_FLAGS>", linkFlags);
@@ -1767,7 +1771,12 @@ std::string
 cmLocalUnixMakefileGenerator::ConvertToOutputForExisting(const char* p)
 {
   std::string ret = cmSystemTools::ConvertToOutputPath(p);
-  cmSystemTools::GetShortPath(ret.c_str(), ret);
+  // if there are spaces in the path, then get the short path version
+  // if there is one
+  if(ret.find(' ') != std::string::npos)
+    {
+    cmSystemTools::GetShortPath(ret.c_str(), ret);
+    }
   return ret;
 }