INTERFACE_SYSTEM_INCLUDE_DIRECTORIES¶
库的公共系统头文件目录列表。
目标可以填充此属性以公布包含系统头文件的包含目录,从而不应导致编译器警告。此外,无论指定何种顺序,在常规包含目录之后都会搜索系统包含目录。
当 target_include_directories()
命令给定 SYSTEM
关键字时,它使用在 PUBLIC
和 INTERFACE
关键字之后提供的该值来填充此属性。
项目还可直接获取和设置属性,但必须意识到向此属性中添加目录不会在编译过程中使用这些目录。向此属性添加目录会将目录标记为系统目录,而这些目录在其他情况下将以非系统方式使用。这看起来似乎是重复的,因此更倾向于高级 target_include_directories()
命令与 SYSTEM
关键字并避免直接设置属性。
使用 target_link_libraries()
指定目标依赖项时,CMake 会从所有目标依赖项中读取此属性,以便将同一包含目录标记为包含系统头文件。
INTERFACE_SYSTEM_INCLUDE_DIRECTORIES
的内容可使用语法 $<...>
的“生成器表达式”。有关可用表达式,请参阅 cmake-generator-expressions(7)
手册。有关定义构建系统属性的更多信息,请参阅 cmake-buildsystem(7)
手册。