mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-06 05:40:54 -06:00
Merge topic 'Python3.14-support'
41a4a32135FindPython: Avoid implicit link library on Windows811f00f9adFindPython: rely on ABIFLAGS on Windows for ABI profile Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !10800
This commit is contained in:
@@ -672,18 +672,16 @@ function (_PYTHON_GET_CONFIG_VAR _PYTHON_PGCV_VALUE NAME)
|
||||
set (_values "_d")
|
||||
endif()
|
||||
elseif (NAME STREQUAL "ABIFLAGS" AND WIN32)
|
||||
# config var ABIFLAGS does not exist, check GIL specific variable
|
||||
# config var ABIFLAGS does not exist for version < 3.14, check GIL specific variable
|
||||
execute_process (COMMAND ${_${_PYTHON_PREFIX}_INTERPRETER_LAUNCHER} "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c
|
||||
"import sys; import sysconfig; sys.stdout.write(str(sysconfig.get_config_var('Py_GIL_DISABLED')))"
|
||||
"import sys\nimport sysconfig\ntry:\n sys.stdout.write(sysconfig.get_config_var('ABIFLAGS'))\nexcept Exception:\n sys.stdout.write('t' if sysconfig.get_config_var('Py_GIL_DISABLED') == 1 else '<none>')"
|
||||
RESULT_VARIABLE _result
|
||||
OUTPUT_VARIABLE _values
|
||||
ERROR_QUIET
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
if (result OR NOT _values EQUAL "1")
|
||||
if (_result OR NOT _values)
|
||||
# assume ABI is not supported or GIL is set
|
||||
set (_values "<none>")
|
||||
else()
|
||||
set (_values "t")
|
||||
endif()
|
||||
else()
|
||||
set (config_flag "${NAME}")
|
||||
@@ -4235,7 +4233,11 @@ if(_${_PYTHON_PREFIX}_CMAKE_ROLE STREQUAL "PROJECT")
|
||||
set_property (TARGET ${__name}
|
||||
PROPERTY INTERFACE_COMPILE_DEFINITIONS "${${_PYTHON_PREFIX}_DEFINITIONS}")
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
# avoid implicit library link (recognized by version 3.14 and upper)
|
||||
set_property (TARGET ${__name}
|
||||
APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS "Py_NO_LINK_LIB")
|
||||
endif()
|
||||
|
||||
if (${_PYTHON_PREFIX}_${_PREFIX}LIBRARY_RELEASE AND ${_PYTHON_PREFIX}_RUNTIME_${_PREFIX}LIBRARY_RELEASE)
|
||||
# System manage shared libraries in two parts: import and runtime
|
||||
@@ -4297,6 +4299,11 @@ if(_${_PYTHON_PREFIX}_CMAKE_ROLE STREQUAL "PROJECT")
|
||||
set_property (TARGET ${__name}
|
||||
PROPERTY INTERFACE_COMPILE_DEFINITIONS "${${_PYTHON_PREFIX}_DEFINITIONS}")
|
||||
endif()
|
||||
if(WIN32)
|
||||
# avoid implicit library link (recognized by version 3.14 and upper)
|
||||
set_property (TARGET ${__name}
|
||||
APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS "Py_NO_LINK_LIB")
|
||||
endif()
|
||||
|
||||
# When available, enforce shared library generation with undefined symbols
|
||||
if (APPLE)
|
||||
|
||||
Reference in New Issue
Block a user