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
时,仅将受保护的内容用于链接依赖项,而不用于其他使用要求。此策略为尚未更新以考虑此更改的项目提供了兼容性。
此策略的 OLD
行为是使用 LINK_LIBRARIES
中受 $<LINK_ONLY:...>
保护的内容,即使对于非链接使用要求也是如此。此策略的 NEW
行为是仅将受保护的内容用于链接依赖项。
此策略在 CMake 3.24 版本中引入。它可以通过 cmake_policy()
或 cmake_minimum_required()
设置。如果未设置,CMake 不会发出警告,并使用 OLD
行为。
注意
策略的 OLD
行为 根据定义已弃用
,并可能在未来版本的 CMake 中移除。