NO_SYSTEM_FROM_IMPORTED

不要将被消耗的 导入目标 的接口中的包含目录视为系统目录。

当被消耗目标的 SYSTEM 属性设置为 true 时,INTERFACE_INCLUDE_DIRECTORIES 目标属性的内容将被视为系统包含目录,或者在 Apple 平台上,当目标是框架时,它将被视为系统目录。默认情况下,对于导入目标,SYSTEM 为 true,对于其他目标类型则为 false。如果在 *消耗* 目标上将 NO_SYSTEM_FROM_IMPORTED 属性设置为 true,则该消耗目标中源文件的编译将不会将被消耗的导入目标的 INTERFACE_INCLUDE_DIRECTORIES 的内容视为系统包含目录,即使该导入目标的 SYSTEM 属性为 false。

在被消耗目标的 INTERFACE_SYSTEM_INCLUDE_DIRECTORIES 属性中列出的目录不受 NO_SYSTEM_FROM_IMPORTED 的影响。消费者始终会将这些目录视为系统包含目录。

如果在创建目标时设置了 CMAKE_NO_SYSTEM_FROM_IMPORTED 变量,则此属性将由该变量的值初始化。

请参阅 EXPORT_NO_SYSTEM 目标属性,以便在提供包含目录的目标上设置此行为,而不是在消耗这些目录的目标上设置此行为。