summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Help/command/find_file.rst3
-rw-r--r--Help/command/find_library.rst3
-rw-r--r--Help/command/find_path.rst3
-rw-r--r--Help/release/dev/find-command-prefix-from-PATH-windows-only.rst12
-rw-r--r--Source/cmFindBase.cxx10
-rw-r--r--Tests/RunCMake/find_file/RunCMakeTest.cmake4
-rw-r--r--Tests/RunCMake/find_library/RunCMakeTest.cmake4
-rw-r--r--Tests/RunCMake/find_path/RunCMakeTest.cmake4
8 files changed, 35 insertions, 8 deletions
diff --git a/Help/command/find_file.rst b/Help/command/find_file.rst
index bf7a919..e56097b 100644
--- a/Help/command/find_file.rst
+++ b/Help/command/find_file.rst
@@ -14,7 +14,8 @@ find_file
.. |CMAKE_XXX_PATH| replace:: :variable:`CMAKE_INCLUDE_PATH`
.. |CMAKE_XXX_MAC_PATH| replace:: :variable:`CMAKE_FRAMEWORK_PATH`
-.. |SYSTEM_ENVIRONMENT_PATH_XXX| replace:: Directories in ``INCLUDE``,
+.. |SYSTEM_ENVIRONMENT_PATH_XXX| replace:: Directories in ``INCLUDE``.
+ On Windows hosts:
``<prefix>/include/<arch>`` if :variable:`CMAKE_LIBRARY_ARCHITECTURE`
is set, and |SYSTEM_ENVIRONMENT_PREFIX_PATH_XXX_SUBDIR|, and the
directories in ``PATH`` itself.
diff --git a/Help/command/find_library.rst b/Help/command/find_library.rst
index 5d07574..31e6ec0 100644
--- a/Help/command/find_library.rst
+++ b/Help/command/find_library.rst
@@ -14,7 +14,8 @@ find_library
.. |CMAKE_XXX_PATH| replace:: :variable:`CMAKE_LIBRARY_PATH`
.. |CMAKE_XXX_MAC_PATH| replace:: :variable:`CMAKE_FRAMEWORK_PATH`
-.. |SYSTEM_ENVIRONMENT_PATH_XXX| replace:: Directories in ``LIB``,
+.. |SYSTEM_ENVIRONMENT_PATH_XXX| replace:: Directories in ``LIB``.
+ On Windows hosts:
``<prefix>/lib/<arch>`` if :variable:`CMAKE_LIBRARY_ARCHITECTURE` is set,
and |SYSTEM_ENVIRONMENT_PREFIX_PATH_XXX_SUBDIR|,
and the directories in ``PATH`` itself.
diff --git a/Help/command/find_path.rst b/Help/command/find_path.rst
index 4403cb5..76342d0 100644
--- a/Help/command/find_path.rst
+++ b/Help/command/find_path.rst
@@ -14,7 +14,8 @@ find_path
.. |CMAKE_XXX_PATH| replace:: :variable:`CMAKE_INCLUDE_PATH`
.. |CMAKE_XXX_MAC_PATH| replace:: :variable:`CMAKE_FRAMEWORK_PATH`
-.. |SYSTEM_ENVIRONMENT_PATH_XXX| replace:: Directories in ``INCLUDE``,
+.. |SYSTEM_ENVIRONMENT_PATH_XXX| replace:: Directories in ``INCLUDE``.
+ On Windows hosts:
``<prefix>/include/<arch>`` if :variable:`CMAKE_LIBRARY_ARCHITECTURE`
is set, and |SYSTEM_ENVIRONMENT_PREFIX_PATH_XXX_SUBDIR|, and the
directories in ``PATH`` itself.
diff --git a/Help/release/dev/find-command-prefix-from-PATH-windows-only.rst b/Help/release/dev/find-command-prefix-from-PATH-windows-only.rst
new file mode 100644
index 0000000..be6eb3e
--- /dev/null
+++ b/Help/release/dev/find-command-prefix-from-PATH-windows-only.rst
@@ -0,0 +1,12 @@
+find-command-prefix-from-PATH-windows-only
+------------------------------------------
+
+* The :command:`find_library`, :command:`find_path`, and :command:`find_file`
+ commands no longer search in installation prefixes derived from the ``PATH``
+ environment variable on non-Windows platforms. This behavior was added in
+ CMake 3.3 to support Windows hosts but has proven problematic on UNIX hosts.
+ Users that keep some ``<prefix>/bin`` directories in the ``PATH`` just for
+ their tools do not necessarily want any supporting ``<prefix>/lib``
+ directories searched. One may set the ``CMAKE_PREFIX_PATH`` environment
+ variable with a :ref:`;-list <CMake Language Lists>` of prefixes that are
+ to be searched.
diff --git a/Source/cmFindBase.cxx b/Source/cmFindBase.cxx
index 90091c1..995097f 100644
--- a/Source/cmFindBase.cxx
+++ b/Source/cmFindBase.cxx
@@ -276,10 +276,16 @@ void cmFindBase::FillSystemEnvironmentPath()
if(!this->EnvironmentPath.empty())
{
paths.AddEnvPath(this->EnvironmentPath);
+#if defined(_WIN32) || defined(__CYGWIN__)
paths.AddEnvPrefixPath("PATH", true);
+ paths.AddEnvPath("PATH");
+#endif
+ }
+ else
+ {
+ // Add PATH
+ paths.AddEnvPath("PATH");
}
- // Add PATH
- paths.AddEnvPath("PATH");
paths.AddSuffixes(this->SearchPathSuffixes);
}
diff --git a/Tests/RunCMake/find_file/RunCMakeTest.cmake b/Tests/RunCMake/find_file/RunCMakeTest.cmake
index 014f397..5ce96e0 100644
--- a/Tests/RunCMake/find_file/RunCMakeTest.cmake
+++ b/Tests/RunCMake/find_file/RunCMakeTest.cmake
@@ -1,3 +1,5 @@
include(RunCMake)
-run_cmake(PrefixInPATH)
+if(WIN32 OR CYGWIN)
+ run_cmake(PrefixInPATH)
+endif()
diff --git a/Tests/RunCMake/find_library/RunCMakeTest.cmake b/Tests/RunCMake/find_library/RunCMakeTest.cmake
index 136031c..5733965 100644
--- a/Tests/RunCMake/find_library/RunCMakeTest.cmake
+++ b/Tests/RunCMake/find_library/RunCMakeTest.cmake
@@ -1,4 +1,6 @@
include(RunCMake)
run_cmake(Created)
-run_cmake(PrefixInPATH)
+if(WIN32 OR CYGWIN)
+ run_cmake(PrefixInPATH)
+endif()
diff --git a/Tests/RunCMake/find_path/RunCMakeTest.cmake b/Tests/RunCMake/find_path/RunCMakeTest.cmake
index 014f397..5ce96e0 100644
--- a/Tests/RunCMake/find_path/RunCMakeTest.cmake
+++ b/Tests/RunCMake/find_path/RunCMakeTest.cmake
@@ -1,3 +1,5 @@
include(RunCMake)
-run_cmake(PrefixInPATH)
+if(WIN32 OR CYGWIN)
+ run_cmake(PrefixInPATH)
+endif()