CMP0131

在 3.24 版本加入.

LINK_LIBRARIES 支持 $<LINK_ONLY:...> 生成器表达式。

CMake 3.23 及以下版本记录了 $<LINK_ONLY:...> 生成器表达式,仅用于 INTERFACE_LINK_LIBRARIES。在 LINK_LIBRARIES 中使用时,始终使用 $<LINK_ONLY:...> 中保护的内容,即使在收集非链接使用要求时,如 INTERFACE_COMPILE_DEFINITIONS

CMake 3.24 及更高版本更倾向于支持 $<LINK_ONLY:...>,当在 LINK_LIBRARIES 中使用时,通过仅将受保护的内容用于链接依赖项而不是其他使用要求。此策略为尚未更新以说明此更改的项目提供兼容性。

此策略的“旧”行为是使用:prop_tgt:LINK_LIBRARIES 由:genex:$<LINK_ONLY:...> 保护的内容,即使是非链接使用要求。此策略的“新”行为是仅将受保护的内容用于链接依赖项。

此策略是在 CMake 版本 3.24 中引入的。使用 cmake_policy() 命令将此策略显式设置为 OLDNEW。与许多政策不同,CMake 版本 |release|当此策略未设置时*不*发出警告,并且仅使用“旧”行为。

备注

策略的“旧”行为是 :manual:根据定义 <cmake-policies(7)> 已弃用,并且可能会在未来版本的 CMake 中删除。