diff options
author | Brad King <brad.king@kitware.com> | 2022-08-04 13:34:39 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2022-08-04 13:34:48 (GMT) |
commit | d4ec1ded392f8d4267dc32af98de916de0c89b18 (patch) | |
tree | c3f9db7d9613615af606c7fa8c26409d4103c80a /Help | |
parent | 90f0288254d7e92dd9f0feaf27bd6331247613c0 (diff) | |
parent | 2a9cc3e8e8254eb1703e7e0931fe062814067454 (diff) | |
download | CMake-d4ec1ded392f8d4267dc32af98de916de0c89b18.zip CMake-d4ec1ded392f8d4267dc32af98de916de0c89b18.tar.gz CMake-d4ec1ded392f8d4267dc32af98de916de0c89b18.tar.bz2 |
Merge topic 'fetchcontent-set-CMAKE_VERIFY_INTERFACE_HEADER_SETS'
2a9cc3e8e8 FetchContent: Disable header set verification for dependencies
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7535
Diffstat (limited to 'Help')
-rw-r--r-- | Help/variable/CMAKE_VERIFY_INTERFACE_HEADER_SETS.rst | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/Help/variable/CMAKE_VERIFY_INTERFACE_HEADER_SETS.rst b/Help/variable/CMAKE_VERIFY_INTERFACE_HEADER_SETS.rst index 6f14e6f..3fb8817 100644 --- a/Help/variable/CMAKE_VERIFY_INTERFACE_HEADER_SETS.rst +++ b/Help/variable/CMAKE_VERIFY_INTERFACE_HEADER_SETS.rst @@ -7,11 +7,33 @@ This variable is used to initialize the :prop_tgt:`VERIFY_INTERFACE_HEADER_SETS` property of targets when they are created. Setting it to true enables header set verification. -Projects should not set this variable, it is intended as a developer +Projects should not normally set this variable, it is intended as a developer control to be set on the :manual:`cmake(1)` command line or other equivalent methods. The developer must have the ability to enable or disable header set verification according to the capabilities of their own machine and compiler. +Verification of a dependency's header sets is not typically of interest +to developers. Therefore, :command:`FetchContent_MakeAvailable` explicitly +sets ``CMAKE_VERIFY_INTERFACE_HEADER_SETS`` to false for the duration of its +call, but restores its original value before returning. If a project brings +a dependency directly into the main build (e.g. calling +:command:`add_subdirectory` on a vendored project from a git submodule), it +should also do likewise. For example: + +.. code:: cmake + + # Save original setting so we can restore it later + set(want_header_set_verification ${CMAKE_VERIFY_INTERFACE_HEADER_SETS}) + + # Include the vendored dependency with header set verification disabled + set(CMAKE_VERIFY_INTERFACE_HEADER_SETS OFF) + add_subdirectory(...) # Vendored sources, e.g. from git submodules + + # Add the project's own sources. Restore the developer's original choice + # for whether to enable header set verification. + set(CMAKE_VERIFY_INTERFACE_HEADER_SETS ${want_header_set_verification}) + add_subdirectory(src) + By default, this variable is not set, which will result in header set verification being disabled. |