VERIFY_INTERFACE_HEADER_SETS

版本 3.24 新增。

用於驗證目標的 PUBLICINTERFACE 標頭集合中的所有標頭是否可以獨立包含。

當此屬性設定為 true,且目標為物件程式庫、靜態程式庫、共享程式庫、介面程式庫或啟用導出的可執行檔,並且目標具有一個或多個 PUBLICINTERFACE 標頭集合時,將建立一個名為 <target_name>_verify_interface_header_sets 的物件程式庫目標。此驗證目標對於 PUBLICINTERFACE 標頭集合中的每個標頭都有一個來源檔案。每個來源檔案僅包含其關聯的標頭檔。驗證目標連結到原始目標,以取得其所有使用需求。驗證目標的 EXCLUDE_FROM_ALLDISABLE_PRECOMPILE_HEADERS 屬性設定為 true,且其 AUTOMOCAUTORCCAUTOUICUNITY_BUILD 屬性設定為 false。

如果標頭的 LANGUAGE 屬性已設定,則該屬性的值將用於確定編譯標頭檔的語言。否則,如果目標有任何 C++ 來源,則標頭將編譯為 C++。否則,如果目標有任何 C 來源,則標頭將編譯為 C。否則,如果全域啟用 C++,則標頭將編譯為 C++。否則,如果全域啟用 C,則標頭將編譯為 C。否則,標頭檔將不會被編譯。

如果標頭的 SKIP_LINTING 屬性設定為 true,則該檔案將不會被編譯。

如果建立任何驗證目標,則會建立一個名為 all_verify_interface_header_sets 的頂層目標,該目標依賴於所有驗證目標。

如果變數 CMAKE_VERIFY_INTERFACE_HEADER_SETS 在建立目標時已設定,則此屬性會由該變數的值初始化。

如果專案希望控制此屬性驗證哪些標頭集合,則可以設定 INTERFACE_HEADER_SETS_TO_VERIFY