mirror of
https://github.com/Kitware/CMake.git
synced 2026-02-22 06:59:01 -06:00
find_program: Fix regression in finding an already-known path
Changes in commit v3.4.0-rc1~124^2~1 (cmFindProgramCommand: Re-implement search using more flexible approach, 2015-09-01) did not preserve the behavior of looking for the given name with no search path at all. Fix this and add a test case covering finding an absolute path with no search directories.
This commit is contained in:
@@ -176,6 +176,13 @@ std::string cmFindProgramCommand::FindNormalProgramNamesPerDir()
|
||||
{
|
||||
helper.AddName(*ni);
|
||||
}
|
||||
|
||||
// Check for the names themselves (e.g. absolute paths).
|
||||
if (helper.CheckDirectory(std::string()))
|
||||
{
|
||||
return helper.BestPath;
|
||||
}
|
||||
|
||||
// Search every directory.
|
||||
for (std::vector<std::string>::const_iterator
|
||||
p = this->SearchPaths.begin(); p != this->SearchPaths.end(); ++p)
|
||||
@@ -200,6 +207,12 @@ std::string cmFindProgramCommand::FindNormalProgramDirsPerName()
|
||||
// Switch to searching for this name.
|
||||
helper.SetName(*ni);
|
||||
|
||||
// Check for the name by itself (e.g. an absolute path).
|
||||
if (helper.CheckDirectory(std::string()))
|
||||
{
|
||||
return helper.BestPath;
|
||||
}
|
||||
|
||||
// Search every directory.
|
||||
for (std::vector<std::string>::const_iterator
|
||||
p = this->SearchPaths.begin();
|
||||
|
||||
Reference in New Issue
Block a user