From c58f7b745b778897ccb5cb122fdb95085f7e5cc4 Mon Sep 17 00:00:00 2001 From: Henry Schreiner Date: Sat, 22 Aug 2020 09:06:01 -0400 Subject: [PATCH] fix: reduce target collision in add_submodule mode (#2423) * fix: reduce target collision in add_submodule mode Closes #2420 * fix: update CMakeLists.txt --- CMakeLists.txt | 16 +++++++++------- tools/pybind11Config.cmake.in | 5 +++++ 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6234f76fe..3b460494a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -154,8 +154,10 @@ set(PYBIND11_INCLUDE_DIR # This section builds targets, but does *not* touch Python # Build the headers-only target (no Python included): -add_library(headers INTERFACE) -add_library(pybind11::headers ALIAS headers) # to match exported target +# (long name used here to keep this from clashing in subdirectory mode) +add_library(pybind11_headers INTERFACE) +add_library(pybind11::pybind11_headers ALIAS pybind11_headers) # to match exported target +add_library(pybind11::headers ALIAS pybind11_headers) # easier to use/remember include("${CMAKE_CURRENT_SOURCE_DIR}/tools/pybind11Common.cmake") @@ -172,11 +174,11 @@ endif() # Fill in headers target target_include_directories( - headers ${pybind11_system} INTERFACE $ - $) + pybind11_headers ${pybind11_system} INTERFACE $ + $) -target_compile_features(headers INTERFACE cxx_inheriting_constructors cxx_user_literals - cxx_right_angle_brackets) +target_compile_features(pybind11_headers INTERFACE cxx_inheriting_constructors cxx_user_literals + cxx_right_angle_brackets) if(PYBIND11_INSTALL) install(DIRECTORY ${PYBIND11_INCLUDE_DIR}/pybind11 DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) @@ -222,7 +224,7 @@ if(PYBIND11_INSTALL) set(PYBIND11_EXPORT_NAME "${PROJECT_NAME}Targets") endif() - install(TARGETS headers EXPORT "${PYBIND11_EXPORT_NAME}") + install(TARGETS pybind11_headers EXPORT "${PYBIND11_EXPORT_NAME}") install( EXPORT "${PYBIND11_EXPORT_NAME}" diff --git a/tools/pybind11Config.cmake.in b/tools/pybind11Config.cmake.in index 4f0500a5f..3f1117296 100644 --- a/tools/pybind11Config.cmake.in +++ b/tools/pybind11Config.cmake.in @@ -130,6 +130,11 @@ endif() include("${CMAKE_CURRENT_LIST_DIR}/pybind11Targets.cmake") +# Easier to use / remember +add_library(pybind11::headers IMPORTED INTERFACE) +set_target_properties(pybind11::headers PROPERTIES INTERFACE_LINK_LIBRARIES + pybind11::pybind11_headers) + include("${CMAKE_CURRENT_LIST_DIR}/pybind11Common.cmake") if(NOT pybind11_FIND_QUIETLY)