summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2015-10-30 12:38:13 (GMT)
committerBrad King <brad.king@kitware.com>2015-10-30 12:38:13 (GMT)
commit1178b5366224eca862257fbb3473929e01b99346 (patch)
tree3ab046b2db6ba3123f860c9bf5c7dbde84d911d0
parent1227ea38e5cd64e72f83e96705266c8307ed6ba0 (diff)
parent31e6571cca3267cf1f5e17df7c985521211885ef (diff)
downloadCMake-1178b5366224eca862257fbb3473929e01b99346.zip
CMake-1178b5366224eca862257fbb3473929e01b99346.tar.gz
CMake-1178b5366224eca862257fbb3473929e01b99346.tar.bz2
Merge branch 'fix-find_program-regression' into release
-rw-r--r--Source/cmFindProgramCommand.cxx13
-rw-r--r--Tests/RunCMake/find_program/DirsPerName-stdout.txt1
-rw-r--r--Tests/RunCMake/find_program/DirsPerName.cmake6
-rw-r--r--Tests/RunCMake/find_program/NamesPerDir-stdout.txt1
-rw-r--r--Tests/RunCMake/find_program/NamesPerDir.cmake6
5 files changed, 27 insertions, 0 deletions
diff --git a/Source/cmFindProgramCommand.cxx b/Source/cmFindProgramCommand.cxx
index e64ed87..219ad48 100644
--- a/Source/cmFindProgramCommand.cxx
+++ b/Source/cmFindProgramCommand.cxx
@@ -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();
diff --git a/Tests/RunCMake/find_program/DirsPerName-stdout.txt b/Tests/RunCMake/find_program/DirsPerName-stdout.txt
index f763bb0..dc1c82b 100644
--- a/Tests/RunCMake/find_program/DirsPerName-stdout.txt
+++ b/Tests/RunCMake/find_program/DirsPerName-stdout.txt
@@ -1 +1,2 @@
-- PROG='[^']*/Tests/RunCMake/find_program/B/testB'
+-- PROG_ABS='[^']*/Tests/RunCMake/find_program/A/testA'
diff --git a/Tests/RunCMake/find_program/DirsPerName.cmake b/Tests/RunCMake/find_program/DirsPerName.cmake
index 54db6dd..6db778d 100644
--- a/Tests/RunCMake/find_program/DirsPerName.cmake
+++ b/Tests/RunCMake/find_program/DirsPerName.cmake
@@ -4,3 +4,9 @@ find_program(PROG
NO_DEFAULT_PATH
)
message(STATUS "PROG='${PROG}'")
+
+find_program(PROG_ABS
+ NAMES ${CMAKE_CURRENT_SOURCE_DIR}/A/testA
+ NO_DEFAULT_PATH
+ )
+message(STATUS "PROG_ABS='${PROG_ABS}'")
diff --git a/Tests/RunCMake/find_program/NamesPerDir-stdout.txt b/Tests/RunCMake/find_program/NamesPerDir-stdout.txt
index 964e259..fd79185 100644
--- a/Tests/RunCMake/find_program/NamesPerDir-stdout.txt
+++ b/Tests/RunCMake/find_program/NamesPerDir-stdout.txt
@@ -1 +1,2 @@
-- PROG='[^']*/Tests/RunCMake/find_program/A/testA'
+-- PROG_ABS='[^']*/Tests/RunCMake/find_program/A/testA'
diff --git a/Tests/RunCMake/find_program/NamesPerDir.cmake b/Tests/RunCMake/find_program/NamesPerDir.cmake
index 49ce49d..5f00a28 100644
--- a/Tests/RunCMake/find_program/NamesPerDir.cmake
+++ b/Tests/RunCMake/find_program/NamesPerDir.cmake
@@ -4,3 +4,9 @@ find_program(PROG
NO_DEFAULT_PATH
)
message(STATUS "PROG='${PROG}'")
+
+find_program(PROG_ABS
+ NAMES ${CMAKE_CURRENT_SOURCE_DIR}/A/testA NAMES_PER_DIR
+ NO_DEFAULT_PATH
+ )
+message(STATUS "PROG_ABS='${PROG_ABS}'")