BUG: make sure find program does not find directories

This commit is contained in:
Bill Hoffman 2001-07-11 12:12:13 -04:00
parent d4edafe717
commit 189a9db9b6
1 changed files with 8 additions and 4 deletions

View File

@ -840,13 +840,15 @@ std::string cmSystemTools::FindProgram(const char* name,
const std::vector<std::string>& userPaths) const std::vector<std::string>& userPaths)
{ {
// See if the executable exists as written. // See if the executable exists as written.
if(cmSystemTools::FileExists(name)) if(cmSystemTools::FileExists(name) &&
!cmSystemTools::FileIsDirectory(name))
{ {
return cmSystemTools::CollapseFullPath(name); return cmSystemTools::CollapseFullPath(name);
} }
std::string tryPath = name; std::string tryPath = name;
tryPath += cmSystemTools::GetExecutableExtension(); tryPath += cmSystemTools::GetExecutableExtension();
if(cmSystemTools::FileExists(tryPath.c_str())) if(cmSystemTools::FileExists(tryPath.c_str()) &&
!cmSystemTools::FileIsDirectory(tryPath.c_str()))
{ {
return cmSystemTools::CollapseFullPath(tryPath.c_str()); return cmSystemTools::CollapseFullPath(tryPath.c_str());
} }
@ -861,12 +863,14 @@ std::string cmSystemTools::FindProgram(const char* name,
tryPath = *p; tryPath = *p;
tryPath += "/"; tryPath += "/";
tryPath += name; tryPath += name;
if(cmSystemTools::FileExists(tryPath.c_str())) if(cmSystemTools::FileExists(tryPath.c_str()) &&
!cmSystemTools::FileIsDirectory(tryPath.c_str()))
{ {
return cmSystemTools::CollapseFullPath(tryPath.c_str()); return cmSystemTools::CollapseFullPath(tryPath.c_str());
} }
tryPath += cmSystemTools::GetExecutableExtension(); tryPath += cmSystemTools::GetExecutableExtension();
if(cmSystemTools::FileExists(tryPath.c_str())) if(cmSystemTools::FileExists(tryPath.c_str()) &&
!cmSystemTools::FileIsDirectory(tryPath.c_str()))
{ {
return cmSystemTools::CollapseFullPath(tryPath.c_str()); return cmSystemTools::CollapseFullPath(tryPath.c_str());
} }