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)
手冊。