diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx index b7e7cf196..ee986b6a0 100644 --- a/Source/cmSystemTools.cxx +++ b/Source/cmSystemTools.cxx @@ -840,13 +840,15 @@ std::string cmSystemTools::FindProgram(const char* name, const std::vector& userPaths) { // See if the executable exists as written. - if(cmSystemTools::FileExists(name)) + if(cmSystemTools::FileExists(name) && + !cmSystemTools::FileIsDirectory(name)) { return cmSystemTools::CollapseFullPath(name); } std::string tryPath = name; 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()); } @@ -861,12 +863,14 @@ std::string cmSystemTools::FindProgram(const char* name, tryPath = *p; tryPath += "/"; 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()); } 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()); }