mirror of
https://github.com/reactos/CMake.git
synced 2025-02-22 04:53:23 +00:00
Merge topic 'FindPython-updates'
329f6aeca5 FindPython*: Windows: add facility to select lookup order for registry. ffb560adc9 FindPython*: MacOS: Fix erroneous handling of Frameworks. b0b53921ce FindPython: clean-up lookup names strategy Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2369
This commit is contained in:
commit
f9eac2ae4b
6
Help/release/dev/FindPython-lookup-strategy.rst
Normal file
6
Help/release/dev/FindPython-lookup-strategy.rst
Normal file
@ -0,0 +1,6 @@
|
||||
FindPython-lookup-strategy
|
||||
--------------------------
|
||||
|
||||
* Modules :module:`FindPython3`, :module:`FindPython2` and :module:`FindPython`
|
||||
gain capability to control order of resource lookup on macOS (Framework) and
|
||||
Windows (Registry).
|
@ -116,6 +116,25 @@ Hints
|
||||
* If set to TRUE, search **only** for static libraries.
|
||||
* If set to FALSE, search **only** for shared libraries.
|
||||
|
||||
``Python_FIND_REGISTRY``
|
||||
On Windows the ``Python_FIND_REGISTRY`` variable determine the order
|
||||
of preference between registry and environment variables.
|
||||
the ``Python_FIND_REGISTRY`` variable can be set to empty or one of the
|
||||
following:
|
||||
|
||||
* ``FIRST``: Try to use registry before environment variables.
|
||||
This is the default.
|
||||
* ``LAST``: Try to use registry after environment variables.
|
||||
* ``NEVER``: Never try to use registry.
|
||||
|
||||
``CMAKE_FIND_FRAMEWORK``
|
||||
On OS X the :variable:`CMAKE_FIND_FRAMEWORK` variable determine the order of
|
||||
preference between Apple-style and unix-style package components.
|
||||
|
||||
.. note::
|
||||
|
||||
Value ``ONLY`` is not supported so ``FIRST`` will be used instead.
|
||||
|
||||
Commands
|
||||
^^^^^^^^
|
||||
|
||||
|
@ -44,9 +44,28 @@ macro (_PYTHON_DISPLAY_FAILURE _PYTHON_MSG)
|
||||
endmacro()
|
||||
|
||||
|
||||
macro (_PYTHON_FIND_FRAMEWORKS)
|
||||
set (${_PYTHON_PREFIX}_FRAMEWORKS)
|
||||
if (APPLE)
|
||||
set (_pff_frameworks ${CMAKE_FRAMEWORK_PATH}
|
||||
$ENV{CMAKE_FRAMEWORK_PATH}
|
||||
~/Library/Frameworks
|
||||
/usr/local/Frameworks
|
||||
${CMAKE_SYSTEM_FRAMEWORK_PATH})
|
||||
list (REMOVE_DUPLICATES _pff_frameworks)
|
||||
foreach (_pff_framework IN LISTS _pff_frameworks)
|
||||
if (EXISTS ${_pff_framework}/Python.framework)
|
||||
list (APPEND ${_PYTHON_PREFIX}_FRAMEWORKS ${_pff_framework}/Python.framework)
|
||||
endif()
|
||||
endforeach()
|
||||
unset (_pff_frameworks)
|
||||
unset (_pff_framework)
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
function (_PYTHON_GET_FRAMEWORKS _PYTHON_PGF_FRAMEWORK_PATHS _PYTHON_VERSION)
|
||||
set (_PYTHON_FRAMEWORK_PATHS)
|
||||
foreach (_PYTHON_FRAMEWORK IN LISTS Python_FRAMEWORKS)
|
||||
foreach (_PYTHON_FRAMEWORK IN LISTS ${_PYTHON_PREFIX}_FRAMEWORKS)
|
||||
list (APPEND _PYTHON_FRAMEWORK_PATHS
|
||||
"${_PYTHON_FRAMEWORK}/Versions/${_PYTHON_VERSION}")
|
||||
endforeach()
|
||||
@ -59,20 +78,43 @@ function (_PYTHON_VALIDATE_INTERPRETER)
|
||||
return()
|
||||
endif()
|
||||
|
||||
if (${_PYTHON_PREFIX}_EXECUTABLE MATCHES "python${CMAKE_EXECUTABLE_SUFFIX}$")
|
||||
# executable found do not have version in name
|
||||
# ensure major version is OK
|
||||
if (ARGC EQUAL 1)
|
||||
set (expected_version ${ARGV0})
|
||||
else()
|
||||
unset (expected_version)
|
||||
endif()
|
||||
|
||||
get_filename_component (python_name "${${_PYTHON_PREFIX}_EXECUTABLE}" NAME)
|
||||
|
||||
if (expected_version AND NOT python_name STREQUAL "python${expected_version}${CMAKE_EXECUTABLE_SUFFIX}")
|
||||
# executable found must have a specific version
|
||||
execute_process (COMMAND "${${_PYTHON_PREFIX}_EXECUTABLE}" -c
|
||||
"import sys; sys.stdout.write(str(sys.version_info[0]))"
|
||||
"import sys; sys.stdout.write('.'.join([str(x) for x in sys.version_info[:2]]))"
|
||||
RESULT_VARIABLE result
|
||||
OUTPUT_VARIABLE version
|
||||
ERROR_QUIET
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
if (result OR NOT version EQUAL _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR)
|
||||
if (result OR NOT version EQUAL expected_version)
|
||||
# interpreter not usable or has wrong major version
|
||||
set (${_PYTHON_PREFIX}_EXECUTABLE ${_PYTHON_PREFIX}_EXECUTABLE-NOTFOUND CACHE INTERNAL "" FORCE)
|
||||
return()
|
||||
endif()
|
||||
else()
|
||||
if (NOT python_name STREQUAL "python${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}${CMAKE_EXECUTABLE_SUFFIX}")
|
||||
# executable found do not have version in name
|
||||
# ensure major version is OK
|
||||
execute_process (COMMAND "${${_PYTHON_PREFIX}_EXECUTABLE}" -c
|
||||
"import sys; sys.stdout.write(str(sys.version_info[0]))"
|
||||
RESULT_VARIABLE result
|
||||
OUTPUT_VARIABLE version
|
||||
ERROR_QUIET
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
if (result OR NOT version EQUAL _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR)
|
||||
# interpreter not usable or has wrong major version
|
||||
set (${_PYTHON_PREFIX}_EXECUTABLE ${_PYTHON_PREFIX}_EXECUTABLE-NOTFOUND CACHE INTERNAL "" FORCE)
|
||||
return()
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (CMAKE_SIZEOF_VOID_P AND "Development" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
|
||||
@ -93,6 +135,33 @@ function (_PYTHON_VALIDATE_INTERPRETER)
|
||||
endfunction()
|
||||
|
||||
|
||||
function (_PYTHON_VALIDATE_COMPILER expected_version)
|
||||
if (NOT ${_PYTHON_PREFIX}_COMPILER)
|
||||
return()
|
||||
endif()
|
||||
|
||||
# retrieve python environment version from compiler
|
||||
set (working_dir "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/PythonCompilerVersion.dir")
|
||||
file (WRITE "${working_dir}/version.py" "import sys; sys.stdout.write('.'.join([str(x) for x in sys.version_info[:2]]))\n")
|
||||
execute_process (COMMAND "${${_PYTHON_PREFIX}_COMPILER}" /target:exe /embed "${working_dir}/version.py"
|
||||
WORKING_DIRECTORY "${working_dir}"
|
||||
OUTPUT_QUIET
|
||||
ERROR_QUIET
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
execute_process (COMMAND "${working_dir}/version"
|
||||
WORKING_DIRECTORY "${working_dir}"
|
||||
RESULT_VARIABLE result
|
||||
OUTPUT_VARIABLE version
|
||||
ERROR_QUIET)
|
||||
file (REMOVE_RECURSE "${_${_PYTHON_PREFIX}_VERSION_DIR}")
|
||||
|
||||
if (result OR NOT version EQUAL expected_version)
|
||||
# Compiler not usable or has wrong major version
|
||||
set (${_PYTHON_PREFIX}_COMPILER ${_PYTHON_PREFIX}_COMPILER-NOTFOUND CACHE INTERNAL "" FORCE)
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
|
||||
function (_PYTHON_FIND_RUNTIME_LIBRARY _PYTHON_LIB)
|
||||
string (REPLACE "_RUNTIME" "" _PYTHON_LIB "${_PYTHON_LIB}")
|
||||
# look at runtime part on systems supporting it
|
||||
@ -181,19 +250,47 @@ else()
|
||||
# architecture unknown, search for natural interpreter
|
||||
set (_${_PYTHON_PREFIX}_IRON_PYTHON_NAMES ipy)
|
||||
endif()
|
||||
set (_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES net45 net40)
|
||||
|
||||
# Apple frameworks handling
|
||||
include (${CMAKE_CURRENT_LIST_DIR}/../CMakeFindFrameworks.cmake)
|
||||
cmake_find_frameworks (Python)
|
||||
_python_find_frameworks ()
|
||||
|
||||
# Save CMAKE_FIND_APPBUNDLE
|
||||
if (DEFINED CMAKE_FIND_APPBUNDLE)
|
||||
set (_${_PYTHON_PREFIX}_CMAKE_FIND_APPBUNDLE ${CMAKE_FIND_APPBUNDLE})
|
||||
else()
|
||||
unset (_${_PYTHON_PREFIX}_CMAKE_FIND_APPBUNDLE)
|
||||
endif()
|
||||
# To avoid app bundle lookup
|
||||
set (CMAKE_FIND_APPBUNDLE "NEVER")
|
||||
|
||||
# Save CMAKE_FIND_FRAMEWORK
|
||||
if (DEFINED CMAKE_FIND_FRAMEWORK)
|
||||
set (_${_PYTHON_PREFIX}_CMAKE_FIND_FRAMEWORK ${CMAKE_FIND_FRAMEWORK})
|
||||
if (CMAKE_FIND_FRAMEWORK STREQUAL "ONLY")
|
||||
message (AUTHOR_WARNING "Find${_PYTHON_PREFIX}: CMAKE_FIND_FRAMEWORK: 'ONLY' value is not supported. 'FIRST' will be used instead.")
|
||||
set (_${_PYTHON_PREFIX}_FIND_FRAMEWORK "FIRST")
|
||||
else()
|
||||
set (_${_PYTHON_PREFIX}_FIND_FRAMEWORK ${CMAKE_FIND_FRAMEWORK})
|
||||
endif()
|
||||
else()
|
||||
unset (_${_PYTHON_PREFIX}_CMAKE_FIND_FRAMEWORK)
|
||||
set (_${_PYTHON_PREFIX}_FIND_FRAMEWORK "FIRST")
|
||||
endif()
|
||||
# To avoid framework lookup
|
||||
set (CMAKE_FIND_FRAMEWORK "NEVER")
|
||||
|
||||
# Windows Registry handling
|
||||
if (DEFINED ${_PYTHON_PREFIX}_FIND_REGISTRY)
|
||||
if (NOT ${_PYTHON_PREFIX}_FIND_REGISTRY MATCHES "^(FIRST|LAST|NEVER)$")
|
||||
message (AUTHOR_WARNING "Find${_PYTHON_PREFIX}: ${${_PYTHON_PREFIX}_FIND_REGISTRY}: invalid value for '${_PYTHON_PREFIX}_FIND_REGISTRY'. 'FIRST', 'LAST' or 'NEVER' expected.")
|
||||
set (_${_PYTHON_PREFIX}_FIND_REGISTRY "FIRST")
|
||||
else()
|
||||
set (_${_PYTHON_PREFIX}_FIND_REGISTRY ${${_PYTHON_PREFIX}_FIND_REGISTRY})
|
||||
endif()
|
||||
else()
|
||||
set (_${_PYTHON_PREFIX}_FIND_REGISTRY "FIRST")
|
||||
endif()
|
||||
# To avoid picking up the system elements pre-maturely.
|
||||
set (CMAKE_FIND_FRAMEWORK LAST)
|
||||
|
||||
|
||||
unset (_${_PYTHON_PREFIX}_REQUIRED_VARS)
|
||||
@ -215,19 +312,26 @@ if ("Interpreter" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS)
|
||||
|
||||
_python_get_frameworks (_${_PYTHON_PREFIX}_FRAMEWORK_PATHS ${_${_PYTHON_PREFIX}_VERSION})
|
||||
|
||||
# try using HINTS
|
||||
find_program (${_PYTHON_PREFIX}_EXECUTABLE
|
||||
NAMES python${_${_PYTHON_PREFIX}_VERSION}
|
||||
NAMES_PER_DIR
|
||||
HINTS ${_${_PYTHON_PREFIX}_HINTS}
|
||||
PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
|
||||
PATH_SUFFIXES bin
|
||||
NO_SYSTEM_ENVIRONMENT_PATH
|
||||
NO_CMAKE_SYSTEM_PATH)
|
||||
# try using registry
|
||||
if (WIN32)
|
||||
# Apple frameworks handling
|
||||
if (APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "FIRST")
|
||||
find_program (${_PYTHON_PREFIX}_EXECUTABLE
|
||||
NAMES python${_${_PYTHON_PREFIX}_VERSION} python
|
||||
NAMES python${_${_PYTHON_PREFIX}_VERSION}
|
||||
python${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}
|
||||
NAMES_PER_DIR
|
||||
PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
|
||||
PATH_SUFFIXES bin
|
||||
NO_CMAKE_PATH
|
||||
NO_CMAKE_ENVIRONMENT_PATH
|
||||
NO_SYSTEM_ENVIRONMENT_PATH
|
||||
NO_CMAKE_SYSTEM_PATH)
|
||||
endif()
|
||||
|
||||
# Windows registry
|
||||
if (WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "FIRST")
|
||||
find_program (${_PYTHON_PREFIX}_EXECUTABLE
|
||||
NAMES python${_${_PYTHON_PREFIX}_VERSION}
|
||||
python${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}
|
||||
python
|
||||
${_${_PYTHON_PREFIX}_IRON_PYTHON_NAMES}
|
||||
NAMES_PER_DIR
|
||||
HINTS ${_${_PYTHON_PREFIX}_HINTS}
|
||||
@ -238,27 +342,91 @@ if ("Interpreter" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS)
|
||||
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath]
|
||||
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH2}\\InstallPath]
|
||||
[HKEY_LOCAL_MACHINE\\SOFTWARE\\IronPython\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath]
|
||||
PATH_SUFFIXES bin
|
||||
PATH_SUFFIXES bin ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
|
||||
NO_SYSTEM_ENVIRONMENT_PATH
|
||||
NO_CMAKE_SYSTEM_PATH)
|
||||
endif()
|
||||
# try in standard paths
|
||||
find_program (${_PYTHON_PREFIX}_EXECUTABLE
|
||||
NAMES python${_${_PYTHON_PREFIX}_VERSION})
|
||||
|
||||
_python_validate_interpreter ()
|
||||
# try using HINTS
|
||||
find_program (${_PYTHON_PREFIX}_EXECUTABLE
|
||||
NAMES python${_${_PYTHON_PREFIX}_VERSION}
|
||||
python${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}
|
||||
python
|
||||
${_${_PYTHON_PREFIX}_IRON_PYTHON_NAMES}
|
||||
NAMES_PER_DIR
|
||||
HINTS ${_${_PYTHON_PREFIX}_HINTS}
|
||||
PATH_SUFFIXES bin
|
||||
NO_SYSTEM_ENVIRONMENT_PATH
|
||||
NO_CMAKE_SYSTEM_PATH)
|
||||
# try using standard paths.
|
||||
# NAMES_PER_DIR is not defined on purpose to have a chance to find
|
||||
# expected version.
|
||||
# For example, typical systems have 'python' for version 2.* and 'python3'
|
||||
# for version 3.*. So looking for names per dir will find, potentially,
|
||||
# systematically 'python' (i.e. version 2) even if version 3 is searched.
|
||||
find_program (${_PYTHON_PREFIX}_EXECUTABLE
|
||||
NAMES python${_${_PYTHON_PREFIX}_VERSION}
|
||||
python${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}
|
||||
python
|
||||
${_${_PYTHON_PREFIX}_IRON_PYTHON_NAMES})
|
||||
|
||||
# Apple frameworks handling
|
||||
if (APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "LAST")
|
||||
find_program (${_PYTHON_PREFIX}_EXECUTABLE
|
||||
NAMES python${_${_PYTHON_PREFIX}_VERSION}
|
||||
python${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}
|
||||
NAMES_PER_DIR
|
||||
PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
|
||||
PATH_SUFFIXES bin
|
||||
NO_DEFAULT_PATH)
|
||||
endif()
|
||||
|
||||
# Windows registry
|
||||
if (WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "LAST")
|
||||
find_program (${_PYTHON_PREFIX}_EXECUTABLE
|
||||
NAMES python${_${_PYTHON_PREFIX}_VERSION}
|
||||
python${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}
|
||||
python
|
||||
${_${_PYTHON_PREFIX}_IRON_PYTHON_NAMES}
|
||||
NAMES_PER_DIR
|
||||
PATHS [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath]
|
||||
[HKEY_CURRENT_USER\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath]
|
||||
[HKEY_CURRENT_USER\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH2}\\InstallPath]
|
||||
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath]
|
||||
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath]
|
||||
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH2}\\InstallPath]
|
||||
[HKEY_LOCAL_MACHINE\\SOFTWARE\\IronPython\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath]
|
||||
PATH_SUFFIXES bin ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
|
||||
NO_DEFAULT_PATH)
|
||||
endif()
|
||||
|
||||
_python_validate_interpreter (${_${_PYTHON_PREFIX}_VERSION})
|
||||
if (${_PYTHON_PREFIX}_EXECUTABLE)
|
||||
break()
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
# try more generic names
|
||||
if (NOT ${_PYTHON_PREFIX}_EXECUTABLE)
|
||||
# No specific version found. Retry with generic names
|
||||
# try using HINTS
|
||||
find_program (${_PYTHON_PREFIX}_EXECUTABLE
|
||||
NAMES python${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR} python
|
||||
NAMES python${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}
|
||||
python
|
||||
${_${_PYTHON_PREFIX}_IRON_PYTHON_NAMES}
|
||||
HINTS ${_${_PYTHON_PREFIX}_HINTS}
|
||||
PATH_SUFFIXES bin)
|
||||
PATH_SUFFIXES bin ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
|
||||
NO_SYSTEM_ENVIRONMENT_PATH
|
||||
NO_CMAKE_SYSTEM_PATH)
|
||||
# try using standard paths.
|
||||
# NAMES_PER_DIR is not defined on purpose to have a chance to find
|
||||
# expected version.
|
||||
# For example, typical systems have 'python' for version 2.* and 'python3'
|
||||
# for version 3.*. So looking for names per dir will find, potentially,
|
||||
# systematically 'python' (i.e. version 2) even if version 3 is searched.
|
||||
find_program (${_PYTHON_PREFIX}_EXECUTABLE
|
||||
NAMES python${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}
|
||||
python
|
||||
${_${_PYTHON_PREFIX}_IRON_PYTHON_NAMES})
|
||||
|
||||
_python_validate_interpreter ()
|
||||
endif()
|
||||
@ -359,19 +527,42 @@ if ("Compiler" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS)
|
||||
|
||||
# try using root dir and registry
|
||||
foreach (_${_PYTHON_PREFIX}_VERSION IN LISTS _${_PYTHON_PREFIX}_FIND_VERSIONS)
|
||||
if (_${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "FIRST")
|
||||
find_program (${_PYTHON_PREFIX}_COMPILER
|
||||
NAMES ipyc
|
||||
HINTS ${_${_PYTHON_PREFIX}_IRON_ROOT} ${_${_PYTHON_PREFIX}_HINTS}
|
||||
PATHS [HKEY_LOCAL_MACHINE\\SOFTWARE\\IronPython\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath]
|
||||
PATH_SUFFIXES ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
|
||||
NO_SYSTEM_ENVIRONMENT_PATH
|
||||
NO_CMAKE_SYSTEM_PATH)
|
||||
endif()
|
||||
|
||||
find_program (${_PYTHON_PREFIX}_COMPILER
|
||||
NAMES ipyc
|
||||
HINTS ${_${_PYTHON_PREFIX}_IRON_ROOT} ${_${_PYTHON_PREFIX}_HINTS}
|
||||
PATHS [HKEY_LOCAL_MACHINE\\SOFTWARE\\IronPython\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath]
|
||||
PATH_SUFFIXES ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
|
||||
NO_SYSTEM_ENVIRONMENT_PATH
|
||||
NO_CMAKE_SYSTEM_PATH)
|
||||
|
||||
if (_${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "LAST")
|
||||
find_program (${_PYTHON_PREFIX}_COMPILER
|
||||
NAMES ipyc
|
||||
PATHS [HKEY_LOCAL_MACHINE\\SOFTWARE\\IronPython\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath]
|
||||
PATH_SUFFIXES ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
|
||||
NO_DEFAULT_PATH)
|
||||
endif()
|
||||
|
||||
_python_validate_compiler (${_${_PYTHON_PREFIX}_VERSION})
|
||||
if (${_PYTHON_PREFIX}_COMPILER)
|
||||
break()
|
||||
endif()
|
||||
endforeach()
|
||||
# try in standard paths
|
||||
|
||||
# no specific version found, re-try in standard paths
|
||||
find_program (${_PYTHON_PREFIX}_COMPILER
|
||||
NAMES ipyc)
|
||||
NAMES ipyc
|
||||
HINTS ${_${_PYTHON_PREFIX}_IRON_ROOT} ${_${_PYTHON_PREFIX}_HINTS}
|
||||
PATH_SUFFIXES ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES})
|
||||
|
||||
if (${_PYTHON_PREFIX}_COMPILER)
|
||||
# retrieve python environment version from compiler
|
||||
@ -483,6 +674,7 @@ if ("Development" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
|
||||
list (APPEND _${_PYTHON_PREFIX}_CONFIG_NAMES "python${_${_PYTHON_PREFIX}_VERSION}-config")
|
||||
find_program (_${_PYTHON_PREFIX}_CONFIG
|
||||
NAMES ${_${_PYTHON_PREFIX}_CONFIG_NAMES}
|
||||
NAMES_PER_DIR
|
||||
HINTS ${_${_PYTHON_PREFIX}_HINTS}
|
||||
PATH_SUFFIXES bin)
|
||||
unset (_${_PYTHON_PREFIX}_CONFIG_NAMES)
|
||||
@ -571,7 +763,54 @@ if ("Development" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
|
||||
|
||||
_python_get_frameworks (_${_PYTHON_PREFIX}_FRAMEWORK_PATHS ${_${_PYTHON_PREFIX}_VERSION})
|
||||
|
||||
# search first in known locations
|
||||
set (_${_PYTHON_PREFIX}_REGISTRY_PATHS
|
||||
[HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath]
|
||||
[HKEY_CURRENT_USER\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath]
|
||||
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath]
|
||||
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath])
|
||||
|
||||
if (APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "FIRST")
|
||||
find_library (${_PYTHON_PREFIX}_LIBRARY_RELEASE
|
||||
NAMES python${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}
|
||||
python${_${_PYTHON_PREFIX}_VERSION}mu
|
||||
python${_${_PYTHON_PREFIX}_VERSION}m
|
||||
python${_${_PYTHON_PREFIX}_VERSION}u
|
||||
python${_${_PYTHON_PREFIX}_VERSION}
|
||||
NAMES_PER_DIR
|
||||
PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
|
||||
PATH_SUFFIXES lib/${CMAKE_LIBRARY_ARCHITECTURE} lib libs
|
||||
lib/python${_${_PYTHON_PREFIX}_VERSION}/config-${_${_PYTHON_PREFIX}_VERSION}mu
|
||||
lib/python${_${_PYTHON_PREFIX}_VERSION}/config-${_${_PYTHON_PREFIX}_VERSION}m
|
||||
lib/python${_${_PYTHON_PREFIX}_VERSION}/config-${_${_PYTHON_PREFIX}_VERSION}u
|
||||
lib/python${_${_PYTHON_PREFIX}_VERSION}/config-${_${_PYTHON_PREFIX}_VERSION}
|
||||
lib/python${_${_PYTHON_PREFIX}_VERSION}/config
|
||||
NO_CMAKE_PATH
|
||||
NO_CMAKE_ENVIRONMENT_PATH
|
||||
NO_SYSTEM_ENVIRONMENT_PATH
|
||||
NO_CMAKE_SYSTEM_PATH)
|
||||
endif()
|
||||
|
||||
if (WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "FIRST")
|
||||
find_library (${_PYTHON_PREFIX}_LIBRARY_RELEASE
|
||||
NAMES python${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}
|
||||
python${_${_PYTHON_PREFIX}_VERSION}mu
|
||||
python${_${_PYTHON_PREFIX}_VERSION}m
|
||||
python${_${_PYTHON_PREFIX}_VERSION}u
|
||||
python${_${_PYTHON_PREFIX}_VERSION}
|
||||
NAMES_PER_DIR
|
||||
HINTS ${_${_PYTHON_PREFIX}_HINTS}
|
||||
PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
|
||||
PATH_SUFFIXES lib/${CMAKE_LIBRARY_ARCHITECTURE} lib libs
|
||||
lib/python${_${_PYTHON_PREFIX}_VERSION}/config-${_${_PYTHON_PREFIX}_VERSION}mu
|
||||
lib/python${_${_PYTHON_PREFIX}_VERSION}/config-${_${_PYTHON_PREFIX}_VERSION}m
|
||||
lib/python${_${_PYTHON_PREFIX}_VERSION}/config-${_${_PYTHON_PREFIX}_VERSION}u
|
||||
lib/python${_${_PYTHON_PREFIX}_VERSION}/config-${_${_PYTHON_PREFIX}_VERSION}
|
||||
lib/python${_${_PYTHON_PREFIX}_VERSION}/config
|
||||
NO_SYSTEM_ENVIRONMENT_PATH
|
||||
NO_CMAKE_SYSTEM_PATH)
|
||||
endif()
|
||||
|
||||
# search in HINTS locations
|
||||
find_library (${_PYTHON_PREFIX}_LIBRARY_RELEASE
|
||||
NAMES python${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}
|
||||
python${_${_PYTHON_PREFIX}_VERSION}mu
|
||||
@ -580,11 +819,6 @@ if ("Development" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
|
||||
python${_${_PYTHON_PREFIX}_VERSION}
|
||||
NAMES_PER_DIR
|
||||
HINTS ${_${_PYTHON_PREFIX}_HINTS}
|
||||
PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
|
||||
[HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath]
|
||||
[HKEY_CURRENT_USER\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath]
|
||||
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath]
|
||||
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath]
|
||||
PATH_SUFFIXES lib/${CMAKE_LIBRARY_ARCHITECTURE} lib libs
|
||||
lib/python${_${_PYTHON_PREFIX}_VERSION}/config-${_${_PYTHON_PREFIX}_VERSION}mu
|
||||
lib/python${_${_PYTHON_PREFIX}_VERSION}/config-${_${_PYTHON_PREFIX}_VERSION}m
|
||||
@ -593,6 +827,19 @@ if ("Development" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
|
||||
lib/python${_${_PYTHON_PREFIX}_VERSION}/config
|
||||
NO_SYSTEM_ENVIRONMENT_PATH
|
||||
NO_CMAKE_SYSTEM_PATH)
|
||||
|
||||
if (APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "LAST")
|
||||
set (__${_PYTHON_PREFIX}_FRAMEWORK_PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS})
|
||||
else()
|
||||
unset (__${_PYTHON_PREFIX}_FRAMEWORK_PATHS)
|
||||
endif()
|
||||
|
||||
if (WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "LAST")
|
||||
set (__${_PYTHON_PREFIX}_REGISTRY_PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS})
|
||||
else()
|
||||
unset (__${_PYTHON_PREFIX}_REGISTRY_PATHS)
|
||||
endif()
|
||||
|
||||
# search in all default paths
|
||||
find_library (${_PYTHON_PREFIX}_LIBRARY_RELEASE
|
||||
NAMES python${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}
|
||||
@ -601,6 +848,8 @@ if ("Development" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
|
||||
python${_${_PYTHON_PREFIX}_VERSION}u
|
||||
python${_${_PYTHON_PREFIX}_VERSION}
|
||||
NAMES_PER_DIR
|
||||
PATHS ${__${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
|
||||
${__${_PYTHON_PREFIX}_REGISTRY_PATHS}
|
||||
PATH_SUFFIXES lib/${CMAKE_LIBRARY_ARCHITECTURE} lib libs
|
||||
lib/python${_${_PYTHON_PREFIX}_VERSION}/config-${_${_PYTHON_PREFIX}_VERSION}mu
|
||||
lib/python${_${_PYTHON_PREFIX}_VERSION}/config-${_${_PYTHON_PREFIX}_VERSION}m
|
||||
@ -618,11 +867,6 @@ if ("Development" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
|
||||
python${_${_PYTHON_PREFIX}_VERSION}
|
||||
NAMES_PER_DIR
|
||||
HINTS "${_${_PYTHON_PREFIX}_PATH}" ${_${_PYTHON_PREFIX}_HINTS}
|
||||
PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
|
||||
[HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath]
|
||||
[HKEY_CURRENT_USER\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath]
|
||||
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath]
|
||||
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath]
|
||||
PATH_SUFFIXES bin)
|
||||
endif()
|
||||
|
||||
@ -631,28 +875,29 @@ if ("Development" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
|
||||
if (${_PYTHON_PREFIX}_LIBRARY_RELEASE)
|
||||
# use library location as a hint
|
||||
get_filename_component (_${_PYTHON_PREFIX}_PATH "${${_PYTHON_PREFIX}_LIBRARY_RELEASE}" DIRECTORY)
|
||||
find_library (${_PYTHON_PREFIX}_LIBRARY_DEBUG
|
||||
NAMES python${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}_d
|
||||
NAMES_PER_DIR
|
||||
HINTS "${_${_PYTHON_PREFIX}_PATH}" ${_${_PYTHON_PREFIX}_HINTS}
|
||||
NO_DEFAULT_PATH)
|
||||
else()
|
||||
# search first in known locations
|
||||
find_library (${_PYTHON_PREFIX}_LIBRARY_DEBUG
|
||||
NAMES python${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}_d
|
||||
NAMES_PER_DIR
|
||||
HINTS ${_${_PYTHON_PREFIX}_HINTS}
|
||||
PATHS [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath]
|
||||
[HKEY_CURRENT_USER\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath]
|
||||
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath]
|
||||
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath]
|
||||
PATH_SUFFIXES lib libs
|
||||
NO_SYSTEM_ENVIRONMENT_PATH
|
||||
NO_CMAKE_SYSTEM_PATH)
|
||||
HINTS "${_${_PYTHON_PREFIX}_PATH}" ${_${_PYTHON_PREFIX}_HINTS}
|
||||
NO_DEFAULT_PATH)
|
||||
else()
|
||||
# search first in known locations
|
||||
if (_${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "FIRST")
|
||||
find_library (${_PYTHON_PREFIX}_LIBRARY_DEBUG
|
||||
NAMES python${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}_d
|
||||
NAMES_PER_DIR
|
||||
HINTS ${_${_PYTHON_PREFIX}_HINTS}
|
||||
PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
|
||||
PATH_SUFFIXES lib libs
|
||||
NO_SYSTEM_ENVIRONMENT_PATH
|
||||
NO_CMAKE_SYSTEM_PATH)
|
||||
endif()
|
||||
# search in all default paths
|
||||
find_library (${_PYTHON_PREFIX}_LIBRARY_DEBUG
|
||||
NAMES python${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}_d
|
||||
NAMES_PER_DIR
|
||||
HINTS ${_${_PYTHON_PREFIX}_HINTS}
|
||||
PATHS ${__${_PYTHON_PREFIX}_REGISTRY_PATHS}
|
||||
PATH_SUFFIXES lib libs)
|
||||
endif()
|
||||
if (${_PYTHON_PREFIX}_LIBRARY_DEBUG)
|
||||
@ -661,10 +906,6 @@ if ("Development" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
|
||||
NAMES python${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}_d
|
||||
NAMES_PER_DIR
|
||||
HINTS "${_${_PYTHON_PREFIX}_PATH}" ${_${_PYTHON_PREFIX}_HINTS}
|
||||
PATHS [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath]
|
||||
[HKEY_CURRENT_USER\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath]
|
||||
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath]
|
||||
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath]
|
||||
PATH_SUFFIXES bin)
|
||||
endif()
|
||||
endif()
|
||||
@ -672,6 +913,21 @@ if ("Development" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
|
||||
# Don't search for include dir until library location is known
|
||||
if (${_PYTHON_PREFIX}_LIBRARY_RELEASE OR ${_PYTHON_PREFIX}_LIBRARY_DEBUG)
|
||||
unset (_${_PYTHON_PREFIX}_INCLUDE_HINTS)
|
||||
|
||||
if (${_PYTHON_PREFIX}_EXECUTABLE)
|
||||
# pick up include directory from configuration
|
||||
execute_process (COMMAND "${${_PYTHON_PREFIX}_EXECUTABLE}" -c
|
||||
"import sys; import sysconfig; sys.stdout.write(sysconfig.get_path('include'))"
|
||||
RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
|
||||
OUTPUT_VARIABLE _${_PYTHON_PREFIX}_PATH
|
||||
ERROR_QUIET
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
if (NOT _${_PYTHON_PREFIX}_RESULT)
|
||||
file (TO_CMAKE_PATH "${_${_PYTHON_PREFIX}_PATH}" _${_PYTHON_PREFIX}_PATH)
|
||||
list (APPEND _${_PYTHON_PREFIX}_INCLUDE_HINTS "${_${_PYTHON_PREFIX}_PATH}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
foreach (_${_PYTHON_PREFIX}_LIB IN ITEMS ${_PYTHON_PREFIX}_LIBRARY_RELEASE ${_PYTHON_PREFIX}_LIBRARY_DEBUG)
|
||||
if (${_${_PYTHON_PREFIX}_LIB})
|
||||
# Use the library's install prefix as a hint
|
||||
@ -691,14 +947,41 @@ if ("Development" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
|
||||
endforeach()
|
||||
list (REMOVE_DUPLICATES _${_PYTHON_PREFIX}_INCLUDE_HINTS)
|
||||
|
||||
if (APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "FIRST")
|
||||
find_path (${_PYTHON_PREFIX}_INCLUDE_DIR
|
||||
NAMES Python.h
|
||||
HINTS ${_${_PYTHON_PREFIX}_HINTS}
|
||||
PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
|
||||
PATH_SUFFIXES include/python${_${_PYTHON_PREFIX}_VERSION}mu
|
||||
include/python${_${_PYTHON_PREFIX}_VERSION}m
|
||||
include/python${_${_PYTHON_PREFIX}_VERSION}u
|
||||
include/python${_${_PYTHON_PREFIX}_VERSION}
|
||||
include
|
||||
NO_CMAKE_PATH
|
||||
NO_CMAKE_ENVIRONMENT_PATH
|
||||
NO_SYSTEM_ENVIRONMENT_PATH
|
||||
NO_CMAKE_SYSTEM_PATH)
|
||||
endif()
|
||||
|
||||
if (WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "FIRST")
|
||||
find_path (${_PYTHON_PREFIX}_INCLUDE_DIR
|
||||
NAMES Python.h
|
||||
HINTS ${_${_PYTHON_PREFIX}_INCLUDE_HINTS} ${_${_PYTHON_PREFIX}_HINTS}
|
||||
PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
|
||||
PATH_SUFFIXES include/python${_${_PYTHON_PREFIX}_VERSION}mu
|
||||
include/python${_${_PYTHON_PREFIX}_VERSION}m
|
||||
include/python${_${_PYTHON_PREFIX}_VERSION}u
|
||||
include/python${_${_PYTHON_PREFIX}_VERSION}
|
||||
include
|
||||
NO_SYSTEM_ENVIRONMENT_PATH
|
||||
NO_CMAKE_SYSTEM_PATH)
|
||||
endif()
|
||||
|
||||
find_path (${_PYTHON_PREFIX}_INCLUDE_DIR
|
||||
NAMES Python.h
|
||||
HINTS ${_${_PYTHON_PREFIX}_INCLUDE_HINTS} ${_${_PYTHON_PREFIX}_HINTS}
|
||||
PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
|
||||
[HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath]
|
||||
[HKEY_CURRENT_USER\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath]
|
||||
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath]
|
||||
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath]
|
||||
PATHS ${__${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
|
||||
${__${_PYTHON_PREFIX}_REGISTRY_PATHS}
|
||||
PATH_SUFFIXES include/python${_${_PYTHON_PREFIX}_VERSION}mu
|
||||
include/python${_${_PYTHON_PREFIX}_VERSION}m
|
||||
include/python${_${_PYTHON_PREFIX}_VERSION}u
|
||||
@ -914,6 +1197,13 @@ endif()
|
||||
|
||||
# final clean-up
|
||||
|
||||
# Restore CMAKE_FIND_APPBUNDLE
|
||||
if (DEFINED _${_PYTHON_PREFIX}_CMAKE_FIND_APPBUNDLE)
|
||||
set (CMAKE_FIND_APPBUNDLE ${_${_PYTHON_PREFIX}_CMAKE_FIND_APPBUNDLE})
|
||||
unset (_${_PYTHON_PREFIX}_CMAKE_FIND_APPBUNDLE)
|
||||
else()
|
||||
unset (CMAKE_FIND_APPBUNDLE)
|
||||
endif()
|
||||
# Restore CMAKE_FIND_FRAMEWORK
|
||||
if (DEFINED _${_PYTHON_PREFIX}_CMAKE_FIND_FRAMEWORK)
|
||||
set (CMAKE_FIND_FRAMEWORK ${_${_PYTHON_PREFIX}_CMAKE_FIND_FRAMEWORK})
|
||||
|
@ -117,6 +117,25 @@ Hints
|
||||
* If set to TRUE, search **only** for static libraries.
|
||||
* If set to FALSE, search **only** for shared libraries.
|
||||
|
||||
``Python2_FIND_REGISTRY``
|
||||
On Windows the ``Python2_FIND_REGISTRY`` variable determine the order
|
||||
of preference between registry and environment variables.
|
||||
the ``Python2_FIND_REGISTRY`` variable can be set to empty or one of the
|
||||
following:
|
||||
|
||||
* ``FIRST``: Try to use registry before environment variables.
|
||||
This is the default.
|
||||
* ``LAST``: Try to use registry after environment variables.
|
||||
* ``NEVER``: Never try to use registry.
|
||||
|
||||
``CMAKE_FIND_FRAMEWORK``
|
||||
On macOS the :variable:`CMAKE_FIND_FRAMEWORK` variable determine the order of
|
||||
preference between Apple-style and unix-style package components.
|
||||
|
||||
.. note::
|
||||
|
||||
Value ``ONLY`` is not supported so ``FIRST`` will be used instead.
|
||||
|
||||
Commands
|
||||
^^^^^^^^
|
||||
|
||||
|
@ -117,6 +117,25 @@ Hints
|
||||
* If set to TRUE, search **only** for static libraries.
|
||||
* If set to FALSE, search **only** for shared libraries.
|
||||
|
||||
``Python3_FIND_REGISTRY``
|
||||
On Windows the ``Python3_FIND_REGISTRY`` variable determine the order
|
||||
of preference between registry and environment variables.
|
||||
the ``Python3_FIND_REGISTRY`` variable can be set to empty or one of the
|
||||
following:
|
||||
|
||||
* ``FIRST``: Try to use registry before environment variables.
|
||||
This is the default.
|
||||
* ``LAST``: Try to use registry after environment variables.
|
||||
* ``NEVER``: Never try to use registry.
|
||||
|
||||
``CMAKE_FIND_FRAMEWORK``
|
||||
On OS X the :variable:`CMAKE_FIND_FRAMEWORK` variable determine the order of
|
||||
preference between Apple-style and unix-style package components.
|
||||
|
||||
.. note::
|
||||
|
||||
Value ``ONLY`` is not supported so ``FIRST`` will be used instead.
|
||||
|
||||
Commands
|
||||
^^^^^^^^
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user