# CMP0131

New in version 3.24.

`LINK_LIBRARIES` supports the `$<LINK_ONLY:...>` generator expression.

CMake 3.23 and below documented the `$<LINK_ONLY:...>` generator expression only for use in `INTERFACE_LINK_LIBRARIES`. When used in `LINK_LIBRARIES`, the content guarded inside `$<LINK_ONLY:...>` was always used, even when collecting non-linking usage requirements such as `INTERFACE_COMPILE_DEFINITIONS`.

CMake 3.24 and above prefer to support `$<LINK_ONLY:...>`, when used in `LINK_LIBRARIES`, by using the guarded content only for link dependencies and not other usage requirements. This policy provides compatibility for projects that have not been updated to account for this change.

The `OLD` behavior for this policy is to use `LINK_LIBRARIES` content guarded by `$<LINK_ONLY:...>` even for non-linking usage requirements. The `NEW` behavior for this policy is to use the guarded content only for link dependencies.

This policy was introduced in CMake version 3.24. Use the `cmake_policy()` command to set this policy to `OLD` or `NEW` explicitly. Unlike many policies, CMake version 3.28.0-rc1 does not warn when this policy is not set, and simply uses `OLD` behavior.

Note

The `OLD` behavior of a policy is `deprecated by definition` and may be removed in a future version of CMake.