mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-05 05:11:15 -06:00
Merge topic 'FindPython-SABI_LIBRARY-definition'
25cbaf162fMerge branch 'backport-FindPython-SABI_LIBRARY-definition'bd7a27bcc7FindPython: fix the definition of SABI artifacts554ef95470FindPython: fix the definition of SABI artifacts Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !10687
This commit is contained in:
@@ -3214,7 +3214,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)
|
||||
|
||||
@@ -3281,7 +3281,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})
|
||||
@@ -3379,7 +3379,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}
|
||||
@@ -3407,7 +3407,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
|
||||
@@ -3423,7 +3423,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)
|
||||
@@ -3639,6 +3639,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}
|
||||
@@ -3655,6 +3657,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
|
||||
|
||||
@@ -33,7 +33,7 @@ if(NOT TARGET Python3::SABIModule)
|
||||
message(SEND_ERROR "Python3::SABIModule not found")
|
||||
endif()
|
||||
|
||||
if (Python3_VERSION VERSION_GREATER_EQUAL "3.2" AND NOT Python3_SOSABI)
|
||||
if (Python3_VERSION VERSION_GREATER_EQUAL "3.2" AND NOT DEFINED Python3_SOSABI)
|
||||
message(FATAL_ERROR "Python3_SOSABI unexpectedly not defined")
|
||||
endif()
|
||||
|
||||
|
||||
@@ -14,6 +14,12 @@ if(CHECK_LIBRARY)
|
||||
set(Python3_LIBRARY "@USER_LIBRARY@")
|
||||
else()
|
||||
set(Python3_LIBRARY "@_Python3_LIBRARY_RELEASE@")
|
||||
set(PYTHON_LIBRARY_RELEASE "@_Python3_LIBRARY_RELEASE@")
|
||||
set(PYTHON_LIBRARY_DEBUG "@_Python3_LIBRARY_DEBUG@")
|
||||
if(WIN32)
|
||||
set(PYTHON_RUNTIME_LIBRARY_RELEASE "@_Python3_RUNTIME_LIBRARY_RELEASE@")
|
||||
set(PYTHON_RUNTIME_LIBRARY_DEBUG "@_Python3_RUNTIME_LIBRARY_DEBUG@")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
if(CHECK_INCLUDE)
|
||||
@@ -28,5 +34,11 @@ if(CHECK_SABI_LIBRARY)
|
||||
set(Python3_SABI_LIBRARY "@USER_LIBRARY@")
|
||||
else()
|
||||
set(Python3_SABI_LIBRARY "@_Python3_SABI_LIBRARY_RELEASE@")
|
||||
set(PYTHON_SABI_LIBRARY_RELEASE "@_Python3_SABI_LIBRARY_RELEASE@")
|
||||
set(PYTHON_SABI_LIBRARY_DEBUG "@_Python3_SABI_LIBRARY_DEBUG@")
|
||||
if(WIN32)
|
||||
set(PYTHON_RUNTIME_SABI_LIBRARY_RELEASE "@_Python3_RUNTIME_SABI_LIBRARY_RELEASE@")
|
||||
set(PYTHON_RUNTIME_SABI_LIBRARY_DEBUG "@_Python3_RUNTIME_SABI_LIBRARY_DEBUG@")
|
||||
endif()
|
||||
endif()
|
||||
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