fix(cmake): allow opting out of system pybind11 headers - #6171
Open
JOINKINGER wants to merge 2 commits into
Open
fix(cmake): allow opting out of system pybind11 headers#6171JOINKINGER wants to merge 2 commits into
JOINKINGER wants to merge 2 commits into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
When pybind11 is added as a subdirectory, its headers are marked as
SYSTEM.A parent project that globally adds an include prefix containing another
pybind11 installation can therefore select that installed copy before the
subdirectory source tree.
Add
PYBIND11_USE_SYSTEM_HEADERS, enabled by default to preserve the existingbehavior. Setting it to
OFFbeforeadd_subdirectory(pybind11)makespybind11_add_module()prefer the subdirectory headers.Add a CMake regression test with a conflicting fake installed header. The test
covers both FindPython and classic CMake paths.
Fixes #5937
Suggested changelog entry:
PYBIND11_USE_SYSTEM_HEADERSoption foradd_subdirectoryusersthat need pybind11 source headers to take precedence over parent include
directories.
📚 Documentation preview 📚: https://pybind11--6171.org.readthedocs.build/