summaryrefslogtreecommitdiffstats
path: root/Modules/FindPython/Support.cmake
diff options
context:
space:
mode:
authorMarc Chevrier <marc.chevrier@gmail.com>2024-09-12 17:22:40 (GMT)
committerMarc Chevrier <marc.chevrier@gmail.com>2024-09-12 17:22:40 (GMT)
commitf885b007b98f32cbea89a5461b0801feeffc1cac (patch)
treee223706f4062f43105cec037bf69e3b1cd1269ac /Modules/FindPython/Support.cmake
parent641976a36b42a1a1a708f338d5218a3faf2e91d4 (diff)
downloadCMake-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/Support.cmake')
-rw-r--r--Modules/FindPython/Support.cmake54
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)