CMAKE_VERIFY_INTERFACE_HEADER_SETS

於 3.24 版本新增。

此變數用於初始化目標(target)的 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)

預設情況下,此變數未設定,這將導致停用標頭集合驗證。