Просмотр исходного кода

ENH: put the system path after the paths specified on to the FIND command

Bill Hoffman 22 лет назад
Родитель
Сommit
96e8cd82c7
2 измененных файлов с 14 добавлено и 9 удалено
  1. 2 2
      Modules/CMakeDetermineCCompiler.cmake
  2. 12 7
      Source/kwsys/SystemTools.cxx

+ 2 - 2
Modules/CMakeDetermineCCompiler.cmake

@@ -38,9 +38,9 @@ IF(NOT CMAKE_C_COMPILER)
 ENDIF(NOT CMAKE_C_COMPILER)
 MARK_AS_ADVANCED(CMAKE_C_COMPILER)  
 
-FIND_PROGRAM(CMAKE_AR NAMES ar PATHS /bin /usr/bin /usr/local/bin)
+FIND_PROGRAM(CMAKE_AR NAMES ar )
 
-FIND_PROGRAM(CMAKE_RANLIB NAMES ranlib PATHS /bin /usr/bin /usr/local/bin)
+FIND_PROGRAM(CMAKE_RANLIB NAMES ranlib)
 IF(NOT CMAKE_RANLIB)
    SET(CMAKE_RANLIB : CACHE INTERNAL "noop for ranlib")
 ENDIF(NOT CMAKE_RANLIB)

+ 12 - 7
Source/kwsys/SystemTools.cxx

@@ -1016,10 +1016,12 @@ bool SystemTools::RemoveFile(const char* source)
 kwsys_std::string SystemTools::FindFile(const char* name, 
                                        const kwsys_std::vector<kwsys_std::string>& userPaths)
 {
-  // Add the system search path to our path.
-  kwsys_std::vector<kwsys_std::string> path = userPaths;
+  // Add the system search path to our path first
+  kwsys_std::vector<kwsys_std::string> path;
   SystemTools::GetPath(path);
-
+  // now add the additional paths
+  path.insert(path.end(), userPaths.begin(), userPaths.end());
+  // now look for the file
   kwsys_std::string tryPath;
   for(kwsys_std::vector<kwsys_std::string>::const_iterator p = path.begin();
       p != path.end(); ++p)
@@ -1065,12 +1067,14 @@ kwsys_std::string SystemTools::FindProgram(const char* name,
     }
 
   // Add the system search path to our path.
-  kwsys_std::vector<kwsys_std::string> path = userPaths;
+  kwsys_std::vector<kwsys_std::string> path;
   if (!no_system_path)
     {
     SystemTools::GetPath(path);
     }
-
+  // now add the additional paths
+  path.insert(path.end(), userPaths.begin(), userPaths.end());
+  
   for(kwsys_std::vector<kwsys_std::string>::const_iterator p = path.begin();
       p != path.end(); ++p)
     {
@@ -1122,9 +1126,10 @@ kwsys_std::string SystemTools::FindLibrary(const char* name,
     }
   
   // Add the system search path to our path.
-  kwsys_std::vector<kwsys_std::string> path = userPaths;
+  kwsys_std::vector<kwsys_std::string> path;
   SystemTools::GetPath(path);
-  
+   // now add the additional paths
+  path.insert(path.end(), userPaths.begin(), userPaths.end());
   kwsys_std::string tryPath;
   for(kwsys_std::vector<kwsys_std::string>::const_iterator p = path.begin();
       p != path.end(); ++p)