CMP0131

在版本 3.24 中添加。

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

CMake 3.23 以下的版本将 $<LINK_ONLY:...> 生成器表达式仅用于 INTERFACE_LINK_LIBRARIES。在 LINK_LIBRARIES 中使用时,始终使用 $<LINK_ONLY:...> 内置保护的内容,即使在收集非链接使用要求(例如 INTERFACE_COMPILE_DEFINITIONS)时也是如此。

如果在 LINK_LIBRARIES 中使用 $<LINK_ONLY:...> 时,CMake 3.24 及更高版本的首选是支持 $<LINK_ONLY:...>,仅对链接依赖性使用受保护的内容,不使用其他使用要求。此策略为尚未更新以考虑此更改的项目提供兼容性。

此策略的 OLD 行为是使用 LINK_LIBRARIES 的内容,内容受 $<LINK_ONLY:...> 保护,即使是用于非链接使用要求时也是如此。此策略的 NEW 行为仅对链接依赖项使用受保护的内容。

此项策略在 CMake 3.24 版本中引入。可以通过 cmake_policy()cmake_minimum_required() 设置。如果未设置,CMake 不会 发出警告,并使用 OLD 行为。