CMAKE_VERIFY_INTERFACE_HEADER_SETS

在 3.24 版本中添加。

此变量用于在创建目标时初始化目标的 VERIFY_INTERFACE_HEADER_SETS 属性。将其设置为 true 可启用头文件集验证。

项目通常不应设置此变量,它旨在作为开发者控制项,应在 cmake(1) 命令行或其他等效方法上设置。开发者必须能够根据自身机器和编译器的能力来启用或禁用头文件集验证。

依赖项的头文件集验证通常不是开发者的兴趣所在。因此,FetchContent_MakeAvailable() 会在其调用期间显式将 CMAKE_VERIFY_INTERFACE_HEADER_SETS 设置为 false,但在返回之前会恢复其原始值。如果项目将依赖项直接引入主构建(例如,在 git 子模块中调用 add_subdirectory() 外部化项目),也应如此。例如

# 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)

默认情况下,此变量未设置,这将导致头文件集验证被禁用。