Drop find_(library|file|path) prefixes from PATH on non-Windows
Since commit v3.3.0-rc1~430^2 (Teach find_(library|file|path) to get prefixes from PATH, 2015-02-18) we search in <prefix>/include and <prefix>/lib directories for prefixes with bin directories in the PATH environment variable. The motivation was to support MSYS, MinGW and similar Windows platforms in their default environments automatically. At the time this behavior was thought to be worthwhile in general. Suggested-by: Chuck Atkins <chuck.atkins@kitware.com>
This commit is contained in:
parent
3ecdddfc35
commit
b30b32a493
|
@ -14,7 +14,8 @@ find_file
|
||||||
.. |CMAKE_XXX_PATH| replace:: :variable:`CMAKE_INCLUDE_PATH`
|
.. |CMAKE_XXX_PATH| replace:: :variable:`CMAKE_INCLUDE_PATH`
|
||||||
.. |CMAKE_XXX_MAC_PATH| replace:: :variable:`CMAKE_FRAMEWORK_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`
|
``<prefix>/include/<arch>`` if :variable:`CMAKE_LIBRARY_ARCHITECTURE`
|
||||||
is set, and |SYSTEM_ENVIRONMENT_PREFIX_PATH_XXX_SUBDIR|, and the
|
is set, and |SYSTEM_ENVIRONMENT_PREFIX_PATH_XXX_SUBDIR|, and the
|
||||||
directories in ``PATH`` itself.
|
directories in ``PATH`` itself.
|
||||||
|
|
|
@ -14,7 +14,8 @@ find_library
|
||||||
.. |CMAKE_XXX_PATH| replace:: :variable:`CMAKE_LIBRARY_PATH`
|
.. |CMAKE_XXX_PATH| replace:: :variable:`CMAKE_LIBRARY_PATH`
|
||||||
.. |CMAKE_XXX_MAC_PATH| replace:: :variable:`CMAKE_FRAMEWORK_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,
|
``<prefix>/lib/<arch>`` if :variable:`CMAKE_LIBRARY_ARCHITECTURE` is set,
|
||||||
and |SYSTEM_ENVIRONMENT_PREFIX_PATH_XXX_SUBDIR|,
|
and |SYSTEM_ENVIRONMENT_PREFIX_PATH_XXX_SUBDIR|,
|
||||||
and the directories in ``PATH`` itself.
|
and the directories in ``PATH`` itself.
|
||||||
|
|
|
@ -14,7 +14,8 @@ find_path
|
||||||
.. |CMAKE_XXX_PATH| replace:: :variable:`CMAKE_INCLUDE_PATH`
|
.. |CMAKE_XXX_PATH| replace:: :variable:`CMAKE_INCLUDE_PATH`
|
||||||
.. |CMAKE_XXX_MAC_PATH| replace:: :variable:`CMAKE_FRAMEWORK_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`
|
``<prefix>/include/<arch>`` if :variable:`CMAKE_LIBRARY_ARCHITECTURE`
|
||||||
is set, and |SYSTEM_ENVIRONMENT_PREFIX_PATH_XXX_SUBDIR|, and the
|
is set, and |SYSTEM_ENVIRONMENT_PREFIX_PATH_XXX_SUBDIR|, and the
|
||||||
directories in ``PATH`` itself.
|
directories in ``PATH`` itself.
|
||||||
|
|
|
@ -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.
|
|
@ -276,10 +276,16 @@ void cmFindBase::FillSystemEnvironmentPath()
|
||||||
if(!this->EnvironmentPath.empty())
|
if(!this->EnvironmentPath.empty())
|
||||||
{
|
{
|
||||||
paths.AddEnvPath(this->EnvironmentPath);
|
paths.AddEnvPath(this->EnvironmentPath);
|
||||||
|
#if defined(_WIN32) || defined(__CYGWIN__)
|
||||||
paths.AddEnvPrefixPath("PATH", true);
|
paths.AddEnvPrefixPath("PATH", true);
|
||||||
|
paths.AddEnvPath("PATH");
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
// Add PATH
|
// Add PATH
|
||||||
paths.AddEnvPath("PATH");
|
paths.AddEnvPath("PATH");
|
||||||
|
}
|
||||||
paths.AddSuffixes(this->SearchPathSuffixes);
|
paths.AddSuffixes(this->SearchPathSuffixes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
include(RunCMake)
|
include(RunCMake)
|
||||||
|
|
||||||
|
if(WIN32 OR CYGWIN)
|
||||||
run_cmake(PrefixInPATH)
|
run_cmake(PrefixInPATH)
|
||||||
|
endif()
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
include(RunCMake)
|
include(RunCMake)
|
||||||
|
|
||||||
run_cmake(Created)
|
run_cmake(Created)
|
||||||
|
if(WIN32 OR CYGWIN)
|
||||||
run_cmake(PrefixInPATH)
|
run_cmake(PrefixInPATH)
|
||||||
|
endif()
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
include(RunCMake)
|
include(RunCMake)
|
||||||
|
|
||||||
|
if(WIN32 OR CYGWIN)
|
||||||
run_cmake(PrefixInPATH)
|
run_cmake(PrefixInPATH)
|
||||||
|
endif()
|
||||||
|
|
Loading…
Reference in New Issue