CMP0131¶
在 3.24 版本中添加。
LINK_LIBRARIES 支持 $<LINK_ONLY:...> 生成器表达式。
CMake 3.23 及以下版本仅在 INTERFACE_LINK_LIBRARIES 中记录了 $<LINK_ONLY:...> 生成器表达式的用法。当在 LINK_LIBRARIES 中使用时,即使在收集非链接使用需求(例如 INTERFACE_COMPILE_DEFINITIONS)时,$<LINK_ONLY:...> 中保护的内容也会被使用。
CMake 3.24 及以上版本倾向于支持在 LINK_LIBRARIES 中使用 $<LINK_ONLY:...>,其做法是仅将受保护的内容用于链接依赖项,而不用于其他使用需求。此策略为尚未更新以适应此变更的项目提供了兼容性。
此策略的 OLD 行为是使用受 $<LINK_ONLY:...> 保护的 LINK_LIBRARIES 内容,即使对于非链接使用需求也是如此。此策略的 NEW 行为则是仅将受保护的内容用于链接依赖项。
此策略已在 CMake 版本 3.24 中引入。它可以由 cmake_policy() 或 cmake_minimum_required() 设置。如果未设置,CMake **不会** 警告,并使用 OLD 行为。
注意
策略的 OLD 行为根据定义已被弃用,并可能在未来版本的 CMake 中被移除。