INTERFACE_SYSTEM_INCLUDE_DIRECTORIES¶
用於函式庫的公開系統包含目錄清單。
目標可以設定此屬性來發布包含系統標頭檔的包含目錄,因此不應導致編譯器警告。此外,無論指定的順序如何,都會在一般包含目錄之後搜尋系統包含目錄。
當給予 target_include_directories()
命令 SYSTEM
關鍵字時,它會使用在 PUBLIC
和 INTERFACE
關鍵字之後提供的值來填充此屬性。
專案也可以直接取得和設定此屬性,但必須注意,將目錄新增到此屬性並不會使這些目錄在編譯期間被使用。將目錄新增到此屬性會將目錄標記為系統目錄,否則這些目錄將以非系統方式使用。這可能看起來類似於重複,因此請優先使用帶有 SYSTEM
關鍵字的高階 target_include_directories()
命令,並避免直接設定此屬性。
當使用 target_link_libraries()
指定目標相依性時,CMake 將從所有目標相依性讀取此屬性,以將相同的包含目錄標記為包含系統標頭。
INTERFACE_SYSTEM_INCLUDE_DIRECTORIES
的內容可以使用帶有 $<...>
語法的「生成器運算式」。請參閱 cmake-generator-expressions(7)
手冊以取得可用的運算式。請參閱 cmake-buildsystem(7)
手冊以取得有關定義建置系統屬性的更多資訊。