ENH: search for program without extensions
This commit is contained in:
parent
e1b163d4db
commit
1d8043cb4f
@ -2018,7 +2018,7 @@ kwsys_stl::string SystemTools::FindProgram(
|
|||||||
}
|
}
|
||||||
kwsys_stl::string name = nameIn;
|
kwsys_stl::string name = nameIn;
|
||||||
kwsys_stl::vector<kwsys_stl::string> extensions;
|
kwsys_stl::vector<kwsys_stl::string> extensions;
|
||||||
#if defined (_WIN32) || defined(__CYGWIN__) | defined(__MINGW32__)
|
#if defined (_WIN32) || defined(__CYGWIN__) || defined(__MINGW32__)
|
||||||
bool hasExtension = false;
|
bool hasExtension = false;
|
||||||
// check to see if the name already has a .xxx at
|
// check to see if the name already has a .xxx at
|
||||||
// the end of it
|
// the end of it
|
||||||
@ -2034,8 +2034,8 @@ kwsys_stl::string SystemTools::FindProgram(
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
kwsys_stl::string tryPath;
|
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())
|
if(extensions.size())
|
||||||
{
|
{
|
||||||
for(kwsys_stl::vector<kwsys_stl::string>::iterator i =
|
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;
|
return SystemTools::CollapseFullPath(tryPath.c_str());
|
||||||
if(SystemTools::FileExists(tryPath.c_str()) &&
|
|
||||||
!SystemTools::FileIsDirectory(tryPath.c_str()))
|
|
||||||
{
|
|
||||||
return SystemTools::CollapseFullPath(tryPath.c_str());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// now construct the path
|
// now construct the path
|
||||||
kwsys_stl::vector<kwsys_stl::string> 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
|
// Remove double quotes from the path on windows
|
||||||
SystemTools::ReplaceString(*p, "\"", "");
|
SystemTools::ReplaceString(*p, "\"", "");
|
||||||
#endif
|
#endif
|
||||||
|
// first try with extensions
|
||||||
if(extensions.size())
|
if(extensions.size())
|
||||||
{
|
{
|
||||||
for(kwsys_stl::vector<kwsys_stl::string>::iterator ext
|
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;
|
return SystemTools::CollapseFullPath(tryPath.c_str());
|
||||||
tryPath += "/";
|
|
||||||
tryPath += name;
|
|
||||||
if(SystemTools::FileExists(tryPath.c_str()) &&
|
|
||||||
!SystemTools::FileIsDirectory(tryPath.c_str()))
|
|
||||||
{
|
|
||||||
return SystemTools::CollapseFullPath(tryPath.c_str());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Couldn't find the program.
|
// Couldn't find the program.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user