1
0
mirror of https://github.com/Kitware/CMake.git synced 2025-10-14 19:08:07 +08:00

FindPython: Avoid implicit link library on Windows

Starting with version 3.14, on Windows, by specifying macro Py_NO_LINK_LIB,
the python library is no longer implicitly specified at the link step.

Fixes: #26756
This commit is contained in:
Marc Chevrier
2025-05-16 18:42:28 +02:00
committed by Brad King
parent 811f00f9ad
commit 41a4a32135

View File

@@ -4069,7 +4069,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
@@ -4131,6 +4135,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)