CMP0022

警告

此策略的 OLD 行为已在 CMake 4.0 版本中移除。此策略必须通过调用 cmake_minimum_required()cmake_policy() 设置为 NEW

INTERFACE_LINK_LIBRARIES 定义链接接口。

CMake 2.8.11 根据匹配 (IMPORTED_)?LINK_INTERFACE_LIBRARIES(_<CONFIG>)? 的属性构建目标的“链接接口”。指定配置敏感内容的现代方法是使用生成器表达式,而 IMPORTED_ 前缀使得使用生成器表达式对链接接口进行统一处理变得不可能。INTERFACE_LINK_LIBRARIES 目标属性作为替代在 CMake 2.8.12 中引入。此新属性的命名与 INTERFACE_COMPILE_DEFINITIONSINTERFACE_INCLUDE_DIRECTORIESINTERFACE_COMPILE_OPTIONS 属性保持一致。对于内部构建目标,CMake 仅当策略 CMP0022NEW 时,才会使用 INTERFACE_LINK_LIBRARIES 属性作为链接接口的源。当导出设置了此策略为 NEW 的目标时,默认情况下,只有 INTERFACE_LINK_LIBRARIES 属性将被处理并为 IMPORTED 目标生成。install(EXPORT) 和 export 命令的新选项允许导出旧式属性,以便与 CMake 2.8.12 之前版本的下游用户兼容。target_link_libraries() 命令如果此策略为 NEW,将不再填充匹配 LINK_INTERFACE_LIBRARIES(_<CONFIG>)? 的属性。

使用 target_link_libraries()LINK_PRIVATELINK_PUBLIC 关键字可以编写自 CMake 2.8.7 起兼容未来且无警告的代码。

此策略的 OLD 行为是忽略内部构建目标的 INTERFACE_LINK_LIBRARIES 属性。此策略的 NEW 行为是使用内部构建目标的 INTERFACE_LINK_LIBRARIES 属性,并忽略匹配 (IMPORTED_)?LINK_INTERFACE_LIBRARIES(_<CONFIG>)? 的旧属性。

此策略在 CMake 2.8.12 版本中引入。在 CMake 4.0 版本中移除之前,它可以通过 cmake_policy()cmake_minimum_required() 设置。如果未设置,CMake 会发出警告,并使用 OLD 行为。