mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-09 07:11:05 -06:00
FindPython: Add policy to manage lookup stratgey default.
This commit is contained in:
@@ -57,6 +57,7 @@ Policies Introduced by CMake 3.15
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
CMP0094: FindPython3, FindPython2 and FindPython use LOCATION for lookup strategy. </policy/CMP0094>
|
||||
CMP0093: FindBoost reports Boost_VERSION in x.y.z format. </policy/CMP0093>
|
||||
CMP0092: MSVC warning flags are not in CMAKE_{C,CXX}_FLAGS by default. </policy/CMP0092>
|
||||
CMP0091: MSVC runtime library flags are selected by an abstraction. </policy/CMP0091>
|
||||
|
||||
22
Help/policy/CMP0094.rst
Normal file
22
Help/policy/CMP0094.rst
Normal file
@@ -0,0 +1,22 @@
|
||||
CMP0094
|
||||
-------
|
||||
|
||||
Modules :module:`FindPython3`, :module:`FindPython2` and :module:`FindPython`
|
||||
use ``LOCATION`` for lookup strategy.
|
||||
|
||||
Starting with CMake 3.15, Modules :module:`FindPython3`, :module:`FindPython2`
|
||||
and :module:`FindPython` set value ``LOCATION`` for, respectively, variables
|
||||
``Python3_FIND_STRATEGY``, ``Python2_FIND_STRATEGY`` and
|
||||
``Python_FIND_STRATEGY``. This policy provides compatibility with projects that
|
||||
expect the legacy behavior.
|
||||
|
||||
The ``OLD`` behavior for this policy set value ``VERSION`` for variables
|
||||
``Python3_FIND_STRATEGY``, ``Python2_FIND_STRATEGY`` and
|
||||
``Python_FIND_STRATEGY``.
|
||||
|
||||
This policy was introduced in CMake version 3.15. Use the
|
||||
:command:`cmake_policy` command to set it to ``OLD`` or ``NEW`` explicitly.
|
||||
Unlike many policies, CMake version |release| does *not* warn
|
||||
when this policy is not set and simply uses the ``OLD`` behavior.
|
||||
|
||||
.. include:: DEPRECATED.txt
|
||||
5
Help/release/dev/FindPython-CMP0094.rst
Normal file
5
Help/release/dev/FindPython-CMP0094.rst
Normal file
@@ -0,0 +1,5 @@
|
||||
FindPython-CMP0094
|
||||
------------------
|
||||
|
||||
* Modules :module:`FindPython3`, :module:`FindPython2` and :module:`FindPython`
|
||||
have changed default strategy for lookup. See policy :policy:`CMP0094`.
|
||||
5
Help/release/dev/FindPython-FIND_STRATEGY.rst
Normal file
5
Help/release/dev/FindPython-FIND_STRATEGY.rst
Normal file
@@ -0,0 +1,5 @@
|
||||
FindPython-FIND_STRATEGY
|
||||
------------------------
|
||||
|
||||
* Modules :module:`FindPython3`, :module:`FindPython2` and :module:`FindPython`
|
||||
gain a new way to control lookup strategy.
|
||||
@@ -144,9 +144,11 @@ Hints
|
||||
|
||||
* ``VERSION``: Try to find the most recent version in all specified
|
||||
locations.
|
||||
This is the default.
|
||||
This is the default if policy :policy:`CMP0094` is undefined or set to
|
||||
``OLD``.
|
||||
* ``LOCATION``: Stops lookup as soon as a version satisfying version
|
||||
constraints is founded.
|
||||
This is the default if policy :policy:`CMP0094` is set to ``NEW``.
|
||||
|
||||
``Python_FIND_REGISTRY``
|
||||
On Windows the ``Python_FIND_REGISTRY`` variable determine the order
|
||||
|
||||
@@ -5,8 +5,14 @@
|
||||
# This file is a "template" file used by various FindPython modules.
|
||||
#
|
||||
|
||||
cmake_policy (GET CMP0094 _${_PYTHON_PREFIX}_LOOKUP_POLICY)
|
||||
|
||||
cmake_policy (VERSION 3.7)
|
||||
|
||||
if (_${_PYTHON_PREFIX}_LOOKUP_POLICY)
|
||||
cmake_policy (SET CMP0094 ${_${_PYTHON_PREFIX}_LOOKUP_POLICY})
|
||||
endif()
|
||||
|
||||
#
|
||||
# Initial configuration
|
||||
#
|
||||
@@ -316,13 +322,17 @@ if (${_PYTHON_PREFIX}_FIND_VERSION_COUNT GREATER 1)
|
||||
endif()
|
||||
|
||||
# Define lookup strategy
|
||||
set (_${_PYTHON_PREFIX}_FIND_STRATEGY "VERSION")
|
||||
if (_${_PYTHON_PREFIX}_LOOKUP_POLICY STREQUAL "NEW")
|
||||
set (_${_PYTHON_PREFIX}_FIND_STRATEGY "LOCATION")
|
||||
else()
|
||||
set (_${_PYTHON_PREFIX}_FIND_STRATEGY "VERSION")
|
||||
endif()
|
||||
if (DEFINED ${_PYTHON_PREFIX}_FIND_STRATEGY)
|
||||
if (NOT ${_PYTHON_PREFIX}_FIND_STRATEGY MATCHES "^(VERSION|LOCATION)$")
|
||||
message (AUTHOR_WARNING "Find${_PYTHON_PREFIX}: ${${_PYTHON_PREFIX}_FIND_STRATEGY}: invalid value for '${_PYTHON_PREFIX}_FIND_STRATEGY'. 'VERSION' or 'LOCATION' expected.")
|
||||
set (_${_PYTHON_PREFIX}_FIND_STRATEGY "VERSION")
|
||||
else()
|
||||
set (_${_PYTHON_PREFIX}_FIND_STRATEGY "${${_PYTHON_PREFIX}_FIND_STRATEGY}")
|
||||
set (_${_PYTHON_PREFIX}_FIND_STRATEGY "${${_PYTHON_PREFIX}_FIND_STRATEGY}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
@@ -145,9 +145,11 @@ Hints
|
||||
|
||||
* ``VERSION``: Try to find the most recent version in all specified
|
||||
locations.
|
||||
This is the default.
|
||||
This is the default if policy :policy:`CMP0094` is undefined or set to
|
||||
``OLD``.
|
||||
* ``LOCATION``: Stops lookup as soon as a version satisfying version
|
||||
constraints is founded.
|
||||
This is the default if policy :policy:`CMP0094` is set to ``NEW``.
|
||||
|
||||
``Python2_FIND_REGISTRY``
|
||||
On Windows the ``Python2_FIND_REGISTRY`` variable determine the order
|
||||
|
||||
@@ -145,9 +145,11 @@ Hints
|
||||
|
||||
* ``VERSION``: Try to find the most recent version in all specified
|
||||
locations.
|
||||
This is the default.
|
||||
This is the default if policy :policy:`CMP0094` is undefined or set to
|
||||
``OLD``.
|
||||
* ``LOCATION``: Stops lookup as soon as a version satisfying version
|
||||
constraints is founded.
|
||||
This is the default if policy :policy:`CMP0094` is set to ``NEW``.
|
||||
|
||||
``Python3_FIND_REGISTRY``
|
||||
On Windows the ``Python3_FIND_REGISTRY`` variable determine the order
|
||||
|
||||
@@ -275,6 +275,10 @@ class cmMakefile;
|
||||
"MSVC warning flags are not in CMAKE_<LANG>_FLAGS by default.", 3, \
|
||||
15, 0, cmPolicies::WARN) \
|
||||
SELECT(POLICY, CMP0093, "FindBoost reports Boost_VERSION in x.y.z format.", \
|
||||
3, 15, 0, cmPolicies::WARN) \
|
||||
SELECT(POLICY, CMP0094, \
|
||||
"FindPython3, FindPython2 and FindPyton use " \
|
||||
"LOCATION for lookup strategy.", \
|
||||
3, 15, 0, cmPolicies::WARN)
|
||||
|
||||
#define CM_SELECT_ID(F, A1, A2, A3, A4, A5, A6) F(A1)
|
||||
|
||||
Reference in New Issue
Block a user