diff options
author | Bill Hoffman <bill.hoffman@kitware.com> | 2006-05-08 18:18:09 (GMT) |
---|---|---|
committer | Bill Hoffman <bill.hoffman@kitware.com> | 2006-05-08 18:18:09 (GMT) |
commit | 1d8043cb4fd6c1bfa3091ea11cd8cde956fcfb99 (patch) | |
tree | 8df30726d679088435216a1d09b5be9547ecef15 /Source/kwsys/SystemTools.cxx | |
parent | e1b163d4db9144bdf1234ee9787961e220e773d7 (diff) | |
download | CMake-1d8043cb4fd6c1bfa3091ea11cd8cde956fcfb99.zip CMake-1d8043cb4fd6c1bfa3091ea11cd8cde956fcfb99.tar.gz CMake-1d8043cb4fd6c1bfa3091ea11cd8cde956fcfb99.tar.bz2 |
ENH: search for program without extensions
Diffstat (limited to 'Source/kwsys/SystemTools.cxx')
-rw-r--r-- | Source/kwsys/SystemTools.cxx | 35 |
1 files changed, 16 insertions, 19 deletions
diff --git a/Source/kwsys/SystemTools.cxx b/Source/kwsys/SystemTools.cxx index 1a878d5..06eccde 100644 --- a/Source/kwsys/SystemTools.cxx +++ b/Source/kwsys/SystemTools.cxx @@ -2018,7 +2018,7 @@ kwsys_stl::string SystemTools::FindProgram( } kwsys_stl::string name = nameIn; kwsys_stl::vector<kwsys_stl::string> extensions; -#if defined (_WIN32) || defined(__CYGWIN__) | defined(__MINGW32__) +#if defined (_WIN32) || defined(__CYGWIN__) || defined(__MINGW32__) bool hasExtension = false; // check to see if the name already has a .xxx at // the end of it @@ -2034,8 +2034,8 @@ kwsys_stl::string SystemTools::FindProgram( } #endif kwsys_stl::string tryPath; - // first try the name as it was given (adding extensions - // if needed.) + + // first try with extensions if the os supports them if(extensions.size()) { for(kwsys_stl::vector<kwsys_stl::string>::iterator i = @@ -2050,14 +2050,12 @@ kwsys_stl::string SystemTools::FindProgram( } } } - else + // now try just the name + tryPath = name; + if(SystemTools::FileExists(tryPath.c_str()) && + !SystemTools::FileIsDirectory(tryPath.c_str())) { - tryPath = name; - if(SystemTools::FileExists(tryPath.c_str()) && - !SystemTools::FileIsDirectory(tryPath.c_str())) - { - return SystemTools::CollapseFullPath(tryPath.c_str()); - } + return SystemTools::CollapseFullPath(tryPath.c_str()); } // now construct the path kwsys_stl::vector<kwsys_stl::string> path; @@ -2080,6 +2078,7 @@ kwsys_stl::string SystemTools::FindProgram( // Remove double quotes from the path on windows SystemTools::ReplaceString(*p, "\"", ""); #endif + // first try with extensions if(extensions.size()) { for(kwsys_stl::vector<kwsys_stl::string>::iterator ext @@ -2096,16 +2095,14 @@ kwsys_stl::string SystemTools::FindProgram( } } } - else + // now try it without them + tryPath = *p; + tryPath += "/"; + tryPath += name; + if(SystemTools::FileExists(tryPath.c_str()) && + !SystemTools::FileIsDirectory(tryPath.c_str())) { - tryPath = *p; - tryPath += "/"; - tryPath += name; - if(SystemTools::FileExists(tryPath.c_str()) && - !SystemTools::FileIsDirectory(tryPath.c_str())) - { - return SystemTools::CollapseFullPath(tryPath.c_str()); - } + return SystemTools::CollapseFullPath(tryPath.c_str()); } } // Couldn't find the program. |