mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-15 12:16:40 +08:00
@@ -3138,7 +3138,7 @@ if (("Development.Module" IN_LIST ${_PYTHON_BASE}_FIND_COMPONENTS
|
||||
if (_${_PYTHON_PREFIX}_FIND_STRATEGY STREQUAL "LOCATION")
|
||||
# library names
|
||||
_python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES VERSION ${_${_PYTHON_PREFIX}_FIND_VERSIONS} WIN32 POSIX LIBRARY)
|
||||
_python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES_DEBUG VERSION ${_${_PYTHON_PREFIX}_FIND_VERSIONS} WIN32 DEBUG)
|
||||
_python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES_DEBUG VERSION ${_${_PYTHON_PREFIX}_FIND_VERSIONS} WIN32 DEBUG LIBRARY)
|
||||
# Paths suffixes
|
||||
_python_get_path_suffixes (_${_PYTHON_PREFIX}_PATH_SUFFIXES VERSION ${_${_PYTHON_PREFIX}_FIND_VERSIONS} LIBRARY)
|
||||
|
||||
@@ -3205,7 +3205,7 @@ if (("Development.Module" IN_LIST ${_PYTHON_BASE}_FIND_COMPONENTS
|
||||
else()
|
||||
foreach (_${_PYTHON_PREFIX}_LIB_VERSION IN LISTS _${_PYTHON_PREFIX}_FIND_VERSIONS)
|
||||
_python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES VERSION ${_${_PYTHON_PREFIX}_LIB_VERSION} WIN32 POSIX LIBRARY)
|
||||
_python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES_DEBUG VERSION ${_${_PYTHON_PREFIX}_LIB_VERSION} WIN32 DEBUG)
|
||||
_python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES_DEBUG VERSION ${_${_PYTHON_PREFIX}_LIB_VERSION} WIN32 DEBUG LIBRARY)
|
||||
|
||||
_python_get_frameworks (_${_PYTHON_PREFIX}_FRAMEWORK_PATHS VERSION ${_${_PYTHON_PREFIX}_LIB_VERSION})
|
||||
_python_get_registries (_${_PYTHON_PREFIX}_REGISTRY_PATHS VERSION ${_${_PYTHON_PREFIX}_LIB_VERSION})
|
||||
@@ -3303,7 +3303,7 @@ if (("Development.Module" IN_LIST ${_PYTHON_BASE}_FIND_COMPONENTS
|
||||
if (WIN32 AND _${_PYTHON_PREFIX}_LIBRARY_RELEASE)
|
||||
# search for debug library
|
||||
# use release library location as a hint
|
||||
_python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES_DEBUG VERSION ${_${_PYTHON_PREFIX}_VERSION} WIN32 DEBUG)
|
||||
_python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES_DEBUG VERSION ${_${_PYTHON_PREFIX}_VERSION} WIN32 DEBUG LIBRARY)
|
||||
get_filename_component (_${_PYTHON_PREFIX}_PATH "${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}" DIRECTORY)
|
||||
find_library (_${_PYTHON_PREFIX}_LIBRARY_DEBUG
|
||||
NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES_DEBUG}
|
||||
@@ -3331,7 +3331,7 @@ if (("Development.Module" IN_LIST ${_PYTHON_BASE}_FIND_COMPONENTS
|
||||
PATH_SUFFIXES bin)
|
||||
endif()
|
||||
if (_${_PYTHON_PREFIX}_LIBRARY_DEBUG)
|
||||
_python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES_DEBUG VERSION ${_${_PYTHON_PREFIX}_VERSION} WIN32 DEBUG)
|
||||
_python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES_DEBUG VERSION ${_${_PYTHON_PREFIX}_VERSION} WIN32 DEBUG LIBRARY)
|
||||
get_filename_component (_${_PYTHON_PREFIX}_PATH "${_${_PYTHON_PREFIX}_LIBRARY_DEBUG}" DIRECTORY)
|
||||
get_filename_component (_${_PYTHON_PREFIX}_PATH2 "${_${_PYTHON_PREFIX}_PATH}" DIRECTORY)
|
||||
_python_find_runtime_library (_${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DEBUG
|
||||
@@ -3347,7 +3347,7 @@ if (("Development.Module" IN_LIST ${_PYTHON_BASE}_FIND_COMPONENTS
|
||||
if (NOT _${_PYTHON_PREFIX}_SABI_LIBRARY_RELEASE)
|
||||
## compute artifact names
|
||||
_python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES VERSION ${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR} WIN32 POSIX LIBRARY)
|
||||
_python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES_DEBUG VERSION ${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR} WIN32 DEBUG)
|
||||
_python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES_DEBUG VERSION ${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR} WIN32 DEBUG LIBRARY)
|
||||
|
||||
if ("LIBRARY" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_ARTIFACTS
|
||||
AND _${_PYTHON_PREFIX}_LIBRARY_RELEASE)
|
||||
@@ -3561,6 +3561,8 @@ if (("Development.Module" IN_LIST ${_PYTHON_BASE}_FIND_COMPONENTS
|
||||
|
||||
if (WIN32 AND _${_PYTHON_PREFIX}_SABI_LIBRARY_RELEASE)
|
||||
# search for debug library
|
||||
# use release library location as a hint
|
||||
_python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES_DEBUG VERSION ${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR} WIN32 DEBUG LIBRARY)
|
||||
get_filename_component (_${_PYTHON_PREFIX}_PATH "${_${_PYTHON_PREFIX}_SABI_LIBRARY_RELEASE}" DIRECTORY)
|
||||
find_library (_${_PYTHON_PREFIX}_SABI_LIBRARY_DEBUG
|
||||
NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES_DEBUG}
|
||||
@@ -3577,6 +3579,7 @@ if (("Development.Module" IN_LIST ${_PYTHON_BASE}_FIND_COMPONENTS
|
||||
|
||||
# retrieve runtime libraries
|
||||
if (_${_PYTHON_PREFIX}_SABI_LIBRARY_RELEASE)
|
||||
_python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES VERSION ${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR} WIN32 POSIX LIBRARY)
|
||||
get_filename_component (_${_PYTHON_PREFIX}_PATH "${_${_PYTHON_PREFIX}_SABI_LIBRARY_RELEASE}" DIRECTORY)
|
||||
get_filename_component (_${_PYTHON_PREFIX}_PATH2 "${_${_PYTHON_PREFIX}_PATH}" DIRECTORY)
|
||||
_python_find_runtime_library (_${_PYTHON_PREFIX}_RUNTIME_SABI_LIBRARY_RELEASE
|
||||
|
@@ -107,6 +107,10 @@ add_test(NAME FindPython.RequiredArtifacts.Library.VALID COMMAND
|
||||
--build-project TestRequiredArtifacts.Check
|
||||
--build-options -DPYTHON_IS_FOUND=TRUE -DCHECK_LIBRARY=ON
|
||||
"-DPython3_LIBRARY=${Python3_LIBRARY_RELEASE}"
|
||||
"-DPYTHON_LIBRARY_RELEASE=${Python3_LIBRARY_RELEASE}"
|
||||
"-DPYTHON_RUNTIME_LIBRARY_RELEASE=${Python3_RUNTIME_LIBRARY_RELEASE}"
|
||||
"-DPYTHON_LIBRARY_DEBUG=${Python3_LIBRARY_DEBUG}"
|
||||
"-DPYTHON_RUNTIME_LIBRARY_DEBUG=${Python3_RUNTIME_LIBRARY_DEBUG}"
|
||||
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
|
||||
)
|
||||
add_test(NAME FindPython.RequiredArtifacts.Library.INVALID COMMAND
|
||||
@@ -179,7 +183,11 @@ if (CMake_TEST_FindPython3_SABIModule AND WIN32)
|
||||
${build_generator_args}
|
||||
--build-project TestRequiredArtifacts.Check
|
||||
--build-options -DPYTHON_IS_FOUND=TRUE -DCHECK_SABI_LIBRARY=ON
|
||||
"-DPython3_SABI_LIBRARY=${Python3_SABI_LIBRARY_RELEASE}"
|
||||
"-DPython3_SABI_LIBRARY=${Python3_SABI_LIBRARY_RELEASE}"
|
||||
"-DPYTHON_SABI_LIBRARY_RELEASE=${Python3_SABI_LIBRARY_RELEASE}"
|
||||
"-DPYTHON_RUNTIME_SABI_LIBRARY_RELEASE=${Python3_RUNTIME_SABI_LIBRARY_RELEASE}"
|
||||
"-DPYTHON_SABI_LIBRARY_DEBUG=${Python3_SABI_LIBRARY_DEBUG}"
|
||||
"-DPYTHON_RUNTIME_SABI_LIBRARY_DEBUG=${Python3_RUNTIME_SABI_LIBRARY_DEBUG}"
|
||||
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
|
||||
)
|
||||
add_test(NAME FindPython.RequiredArtifacts.SABILibrary.INVALID COMMAND
|
||||
@@ -190,7 +198,7 @@ if (CMake_TEST_FindPython3_SABIModule AND WIN32)
|
||||
${build_generator_args}
|
||||
--build-project TestRequiredArtifacts.Check
|
||||
--build-options -DPYTHON_IS_FOUND=FALSE -DCHECK_SABI_LIBRARY=ON
|
||||
"-DPython3_SABI_LIBRARY=${USER_LIBRARY}"
|
||||
"-DPython3_SABI_LIBRARY=${USER_LIBRARY}"
|
||||
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
|
||||
)
|
||||
endif()
|
||||
|
@@ -31,12 +31,19 @@ if (NOT PYTHON_IS_FOUND AND Python3_FOUND)
|
||||
message (FATAL_ERROR "Python3 unexpectedly found")
|
||||
endif()
|
||||
|
||||
|
||||
if (CHECK_INTERPRETER AND NOT Python3_EXECUTABLE STREQUAL required_interpreter)
|
||||
message (FATAL_ERROR "Failed to use input variable Python3_EXECUTABLE")
|
||||
endif()
|
||||
|
||||
if (CHECK_LIBRARY AND NOT Python3_LIBRARY_RELEASE STREQUAL required_library)
|
||||
if (CHECK_LIBRARY AND PYTHON_IS_FOUND AND
|
||||
(NOT Python3_LIBRARY_RELEASE STREQUAL PYTHON_LIBRARY_RELEASE
|
||||
OR (WIN32 AND NOT Python3_RUNTIME_LIBRARY_RELEASE STREQUAL PYTHON_RUNTIME_LIBRARY_RELEASE)
|
||||
OR (PYTHON_LIBRARY_DEBUG AND NOT Python3_LIBRARY_DEBUG STREQUAL PYTHON_LIBRARY_DEBUG)
|
||||
OR (WIN32 AND PYTHON_RUNTIME_LIBRARY_DEBUG AND NOT Python3_RUNTIME_LIBRARY_DEBUG STREQUAL PYTHON_RUNTIME_LIBRARY_DEBUG)))
|
||||
message (FATAL_ERROR "Failed to use input variable Python3_LIBRARY")
|
||||
endif()
|
||||
if (CHECK_LIBRARY AND NOT PYTHON_IS_FOUND AND
|
||||
NOT Python3_LIBRARY_RELEASE STREQUAL required_library)
|
||||
message (FATAL_ERROR "Failed to use input variable Python3_LIBRARY")
|
||||
endif()
|
||||
|
||||
@@ -44,6 +51,14 @@ if (CHECK_INCLUDE AND NOT Python3_INCLUDE_DIRS STREQUAL required_include)
|
||||
message (FATAL_ERROR "Failed to use input variable Python3_INCLUDE_DIR")
|
||||
endif()
|
||||
|
||||
if (CHECK_SABI_LIBRARY AND NOT Python3_SABI_LIBRARY_RELEASE STREQUAL required_sabi_library)
|
||||
if (CHECK_SABI_LIBRARY AND PYTHON_IS_FOUND AND
|
||||
(NOT Python3_SABI_LIBRARY_RELEASE STREQUAL PYTHON_SABI_LIBRARY_RELEASE
|
||||
OR (WIN32 AND NOT Python3_RUNTIME_SABI_LIBRARY_RELEASE STREQUAL PYTHON_RUNTIME_SABI_LIBRARY_RELEASE)
|
||||
OR (PYTHON_SABI_LIBRARY_DEBUG AND NOT Python3_SABI_LIBRARY_DEBUG STREQUAL PYTHON_SABI_LIBRARY_DEBUG)
|
||||
OR (WIN32 AND PYTHON_RUNTIME_SABI_LIBRARY_DEBUG AND NOT Python3_RUNTIME_SABI_LIBRARY_DEBUG STREQUAL PYTHON_RUNTIME_SABI_LIBRARY_DEBUG)))
|
||||
message (FATAL_ERROR "Failed to use input variable Python3_SABI_LIBRARY")
|
||||
endif()
|
||||
if (CHECK_SABI_LIBRARY AND NOT PYTHON_IS_FOUND AND
|
||||
NOT Python3_SABI_LIBRARY_RELEASE STREQUAL required_sabi_library)
|
||||
message (FATAL_ERROR "Failed to use input variable Python3_SABI_LIBRARY")
|
||||
endif()
|
||||
|
Reference in New Issue
Block a user