FindPython: fix wrong check in cross-compiling and CMP0190=OLD

Fixes: #28144
This commit is contained in:
Marc Chevrier committed 2026-10-09 16:35:54 +02:00
1 parent 9eab45da5f
commit dbc73242d8
1 file changed
+8 -6
+8 -6
View File
@@ -1653,18 +1653,15 @@ if (CMAKE_CROSSCOMPILING)
cmake_policy (GET CMP0190 _${_PYTHON_PREFIX}_CROSSCOMPILING_POLICY)
if (_${_PYTHON_PREFIX}_CROSSCOMPILING_POLICY STREQUAL "NEW")
if (DEFINED ${_PYTHON_PREFIX}_CROSSCOMPILING_EMULATOR OR CMAKE_CROSSCOMPILING_EMULATOR)
set (_${_PYTHON_PREFIX}_CROSSCOMPILING TRUE)
set (_${_PYTHON_PREFIX}_CROSSCOMPILING TRUE)
if (DEFINED ${_PYTHON_PREFIX}_CROSSCOMPILING_EMULATOR)
set (_${_PYTHON_PREFIX}_CROSSCOMPILING_EMULATOR "${${_PYTHON_PREFIX}_CROSSCOMPILING_EMULATOR}")
else()
else()
set (_${_PYTHON_PREFIX}_CROSSCOMPILING_EMULATOR "${CMAKE_CROSSCOMPILING_EMULATOR}")
endif()
else()
_python_display_failure ("${_PYTHON_PREFIX}: When cross-compiling, Interpreter and/or Compiler components cannot be searched when ${_PYTHON_PREFIX}_CROSSCOMPILING_EMULATOR or CMAKE_CROSSCOMPILING_EMULATOR variable is not specified (see policy CMP0190)." FATAL)
endif()
else()
# CMP0190 == OLD : no condition regarding crosscompiling environment
set (_${_PYTHON_PREFIX}_CROSSCOMPILING TRUE)
endif()
endif()
endif()
endif()
@@ -1731,6 +1728,11 @@ if (_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR VERSION_LESS "3")
# ABI not supported
unset (_${_PYTHON_PREFIX}_FIND_ABI)
set (_${_PYTHON_PREFIX}_ABIFLAGS "<none>")
elseif(NOT DEFINED ${_PYTHON_PREFIX}_FIND_ABI
AND CMAKE_CROSSCOMPILING AND NOT _${_PYTHON_PREFIX}_CROSSCOMPILING_POLICY STREQUAL "NEW")
# cannot manage ABI reliably
unset (_${_PYTHON_PREFIX}_FIND_ABI)
set (_${_PYTHON_PREFIX}_ABIFLAGS "<none>")
else()
unset (_${_PYTHON_PREFIX}_FIND_ABI)
if (DEFINED ${_PYTHON_PREFIX}_FIND_ABI)