Skip to content

Commit 7d1e36e

Browse files
committed
chore(cmake): carry option-driven defines on pybind11_headers INTERFACE
PYBIND11_DISABLE_HANDLE_TYPE_NAME_DEFAULT_IMPLEMENTATION and PYBIND11_SIMPLE_GIL_MANAGEMENT were directory-scoped add_compile_definitions, which only reached the master-project test build. On the pybind11_headers INTERFACE (like PYBIND11_INTERNALS_VERSION) they also apply in add_subdirectory mode and in the exported/installed targets. Assisted-by: ClaudeCode:claude-fable-5
1 parent 856a348 commit 7d1e36e

1 file changed

Lines changed: 7 additions & 7 deletions

File tree

‎CMakeLists.txt‎

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -109,13 +109,6 @@ if(NOT DEFINED PYBIND11_USE_CROSSCOMPILING)
109109
endif()
110110
option(PYBIND11_USE_CROSSCOMPILING "Respect CMAKE_CROSSCOMPILING" OFF)
111111

112-
if(PYBIND11_DISABLE_HANDLE_TYPE_NAME_DEFAULT_IMPLEMENTATION)
113-
add_compile_definitions(PYBIND11_DISABLE_HANDLE_TYPE_NAME_DEFAULT_IMPLEMENTATION)
114-
endif()
115-
if(PYBIND11_SIMPLE_GIL_MANAGEMENT)
116-
add_compile_definitions(PYBIND11_SIMPLE_GIL_MANAGEMENT)
117-
endif()
118-
119112
cmake_dependent_option(
120113
USE_PYTHON_INCLUDE_DIR
121114
"Install pybind11 headers in Python include directory instead of default installation prefix"
@@ -307,6 +300,13 @@ if(NOT TARGET pybind11_headers)
307300
target_compile_definitions(
308301
pybind11_headers INTERFACE "PYBIND11_INTERNALS_VERSION=${PYBIND11_INTERNALS_VERSION}")
309302
endif()
303+
if(PYBIND11_DISABLE_HANDLE_TYPE_NAME_DEFAULT_IMPLEMENTATION)
304+
target_compile_definitions(pybind11_headers
305+
INTERFACE PYBIND11_DISABLE_HANDLE_TYPE_NAME_DEFAULT_IMPLEMENTATION)
306+
endif()
307+
if(PYBIND11_SIMPLE_GIL_MANAGEMENT)
308+
target_compile_definitions(pybind11_headers INTERFACE PYBIND11_SIMPLE_GIL_MANAGEMENT)
309+
endif()
310310
else()
311311
# It is invalid to install a target twice, too.
312312
set(PYBIND11_INSTALL OFF)

0 commit comments

Comments
 (0)