diff options
| author | Marc Chevrier <marc.chevrier@gmail.com> | 2024-09-12 17:22:40 (GMT) |
|---|---|---|
| committer | Marc Chevrier <marc.chevrier@gmail.com> | 2024-09-12 17:22:40 (GMT) |
| commit | f885b007b98f32cbea89a5461b0801feeffc1cac (patch) | |
| tree | e223706f4062f43105cec037bf69e3b1cd1269ac /Modules/FindPython | |
| parent | 641976a36b42a1a1a708f338d5218a3faf2e91d4 (diff) | |
| download | CMake-f885b007b98f32cbea89a5461b0801feeffc1cac.zip CMake-f885b007b98f32cbea89a5461b0801feeffc1cac.tar.gz CMake-f885b007b98f32cbea89a5461b0801feeffc1cac.tar.bz2 | |
FindPython: ensure all ABI are searched by default
Fixes: #26279
Diffstat (limited to 'Modules/FindPython')
| -rw-r--r-- | Modules/FindPython/Support.cmake | 54 |
1 files changed, 19 insertions, 35 deletions
diff --git a/Modules/FindPython/Support.cmake b/Modules/FindPython/Support.cmake index 35a1d67..faca5ae 100644 --- a/Modules/FindPython/Support.cmake +++ b/Modules/FindPython/Support.cmake @@ -225,19 +225,14 @@ function (_PYTHON_GET_REGISTRIES _PYTHON_PGR_REGISTRY_PATHS) endfunction() -function (_PYTHON_GET_ABIFLAGS _PGABIFLAGS) - if (NOT DEFINED _${_PYTHON_PREFIX}_FIND_ABI) - set (${_PGABIFLAGS} "<none>" PARENT_SCOPE) - return() - endif() - +function (_PYTHON_GET_ABIFLAGS _PGA_FIND_ABI _PGABIFLAGS) set (abiflags "<none>") - list (GET _${_PYTHON_PREFIX}_FIND_ABI 0 pydebug) - list (GET _${_PYTHON_PREFIX}_FIND_ABI 1 pymalloc) - list (GET _${_PYTHON_PREFIX}_FIND_ABI 2 unicode) - list (LENGTH _${_PYTHON_PREFIX}_FIND_ABI find_abi_length) + list (GET _PGA_FIND_ABI 0 pydebug) + list (GET _PGA_FIND_ABI 1 pymalloc) + list (GET _PGA_FIND_ABI 2 unicode) + list (LENGTH _PGA_FIND_ABI find_abi_length) if (find_abi_length GREATER 3) - list (GET _${_PYTHON_PREFIX}_FIND_ABI 3 gil) + list (GET _PGA_FIND_ABI 3 gil) else() set (gil "OFF") endif() @@ -302,12 +297,8 @@ function (_PYTHON_GET_PATH_SUFFIXES _PYTHON_PGPS_PATH_SUFFIXES) set (_PGPS_IMPLEMENTATIONS ${_${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS}) endif() - if (DEFINED _${_PYTHON_PREFIX}_ABIFLAGS) - set (abi "${_${_PYTHON_PREFIX}_ABIFLAGS}") - list (TRANSFORM abi REPLACE "^<none>$" "") - else() - set (abi "mu" "m" "u" "") - endif() + set (abi "${_${_PYTHON_PREFIX}_ABIFLAGS}") + list (TRANSFORM abi REPLACE "^<none>$" "") set (path_suffixes) @@ -401,12 +392,8 @@ function (_PYTHON_GET_NAMES _PYTHON_PGN_NAMES) else() string (REPLACE "." "" name_version ${version}) endif() - if (DEFINED _${_PYTHON_PREFIX}_ABIFLAGS) - set (abi "${_${_PYTHON_PREFIX}_ABIFLAGS}") - list (TRANSFORM abi REPLACE "^<none>$" "") - else() - set (abi "") - endif() + set (abi "${_${_PYTHON_PREFIX}_ABIFLAGS}") + list (TRANSFORM abi REPLACE "^<none>$" "") if (abi) set (abinames "${abi}") list (TRANSFORM abinames PREPEND "python${name_version}") @@ -420,16 +407,8 @@ function (_PYTHON_GET_NAMES _PYTHON_PGN_NAMES) endif() if (_PGN_POSIX) - if (DEFINED _${_PYTHON_PREFIX}_ABIFLAGS) - set (abi "${_${_PYTHON_PREFIX}_ABIFLAGS}") - list (TRANSFORM abi REPLACE "^<none>$" "") - else() - if (_PGN_INTERPRETER OR _PGN_CONFIG) - set (abi "") - else() - set (abi "mu" "m" "u" "") - endif() - endif() + set (abi "${_${_PYTHON_PREFIX}_ABIFLAGS}") + list (TRANSFORM abi REPLACE "^<none>$" "") if (abi) if (_PGN_CONFIG AND DEFINED CMAKE_LIBRARY_ARCHITECTURE) @@ -1529,7 +1508,6 @@ if (_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR VERSION_LESS "3") set (_${_PYTHON_PREFIX}_ABIFLAGS "<none>") else() unset (_${_PYTHON_PREFIX}_FIND_ABI) - unset (_${_PYTHON_PREFIX}_ABIFLAGS) if (DEFINED ${_PYTHON_PREFIX}_FIND_ABI) # normalization string (TOUPPER "${${_PYTHON_PREFIX}_FIND_ABI}" _${_PYTHON_PREFIX}_FIND_ABI) @@ -1539,8 +1517,14 @@ else() message (AUTHOR_WARNING "Find${_PYTHON_PREFIX}: ${${_PYTHON_PREFIX}_FIND_ABI}: invalid value for '${_PYTHON_PREFIX}_FIND_ABI'. Ignore it") unset (_${_PYTHON_PREFIX}_FIND_ABI) endif() + _python_get_abiflags ("${${_PYTHON_PREFIX}_FIND_ABI}" _${_PYTHON_PREFIX}_ABIFLAGS) + else() + if (WIN32) + _python_get_abiflags ("OFF;OFF;OFF;OFF" _${_PYTHON_PREFIX}_ABIFLAGS) + else() + _python_get_abiflags ("ANY;ANY;ANY;OFF" _${_PYTHON_PREFIX}_ABIFLAGS) + endif() endif() - _python_get_abiflags (_${_PYTHON_PREFIX}_ABIFLAGS) endif() unset (${_PYTHON_PREFIX}_SOABI) unset (${_PYTHON_PREFIX}_SOSABI) |
