Quellcode durchsuchen

ENH/FIX: add NO_SYSTEM_PATH option + fix command usage

Sebastien Barre vor 23 Jahren
Ursprung
Commit
1ad05f9e6d
2 geänderte Dateien mit 12 neuen und 4 gelöschten Zeilen
  1. 8 1
      Source/cmFindProgramCommand.cxx
  2. 4 3
      Source/cmFindProgramCommand.h

+ 8 - 1
Source/cmFindProgramCommand.cxx

@@ -76,6 +76,7 @@ bool cmFindProgramCommand::InitialPass(std::vector<std::string> const& argsIn)
   bool foundName = false;
   bool foundPath = false;
   bool doingNames = true;
+  bool no_system_path = false;
   for (unsigned int j = 1; j < args.size(); ++j)
     {
     if(args[j] == "NAMES")
@@ -88,6 +89,10 @@ bool cmFindProgramCommand::InitialPass(std::vector<std::string> const& argsIn)
       doingNames = false;
       foundPath = true;
       }
+    else if (args[j] == "NO_SYSTEM_PATH")
+      {
+      no_system_path = true;
+      }
     else
       { 
       if(doingNames)
@@ -123,7 +128,9 @@ bool cmFindProgramCommand::InitialPass(std::vector<std::string> const& argsIn)
       i != names.end() ; ++i)
     {
     // Try to find the program.
-    std::string result = cmSystemTools::FindProgram(i->c_str(), path);
+    std::string result = cmSystemTools::FindProgram(i->c_str(), 
+                                                    path, 
+                                                    no_system_path);
     if(result != "")
       {
       // Save the value in the cache

+ 4 - 3
Source/cmFindProgramCommand.h

@@ -70,11 +70,12 @@ public:
   virtual const char* GetFullDocumentation()
     {
     return
-      "FIND_PROGRAM(NAME executable1 extrapath extrapath ... [DOC helpstring]) "
+      "FIND_PROGRAM(DEFINE_NAME executableName [NAMES name1 name2 name3...] [PATHS path1 path2 path3...] [NO_SYSTEM_PATH] [DOC helpstring]) "
       "Find the executable in the system PATH or in any extra paths specified in the command."
-      "A cache entry called NAME is created to store the result.   NOTFOUND is the value"
+      "A cache entry called DEFILE_NAME is created to store the result. NOTFOUND is the value"
       " used if the program was not found.  If DOC is specified the next argument is the "
-      "documentation string for the cache entry NAME.";
+      "documentation string for the cache entry NAME."
+      "If NO_SYSTEM_PATH is specified the contents of system PATH is not used";
     }
   
   cmTypeMacro(cmFindProgramCommand, cmCommand);