Files
CMake/Help/policy/CMP0189.rst
Alex Turbov 9784834b4c Help: Use *.rst extension for included files
So, editor(s) can correctly highlight the RST syntax in the included files.
2025-04-14 03:07:46 +04:00

31 lines
1.3 KiB
ReStructuredText

CMP0189
-------
.. versionadded:: 4.1
:genex:`TARGET_PROPERTY` evaluates ``LINK_LIBRARIES`` properties transitively.
The :prop_tgt:`LINK_LIBRARIES` and :prop_tgt:`INTERFACE_LINK_LIBRARIES`
target properties record link dependencies through which the
:genex:`TARGET_PROPERTY` generator expression evaluates transitive properties.
However, in CMake 4.0 and below, the properties themselves were not evaluated
transitively. CMake 4.1 and above prefer to evaluate the
:prop_tgt:`LINK_LIBRARIES` and :prop_tgt:`INTERFACE_LINK_LIBRARIES`
target properties transitively because they are among the
:ref:`build specification <Target Build Specification>` and
:ref:`usage requirement <Target Usage Requirements>` properties, respectively.
This policy provides compatibility for projects that have not been updated to
expect the new behavior.
The ``OLD`` behavior of this policy is for :genex:`TARGET_PROPERTY` to not
evaluate :prop_tgt:`LINK_LIBRARIES` and :prop_tgt:`INTERFACE_LINK_LIBRARIES`
transitively. The ``NEW`` behavior is for :genex:`TARGET_PROPERTY` to
evaluate :prop_tgt:`LINK_LIBRARIES` and :prop_tgt:`INTERFACE_LINK_LIBRARIES`
transitively.
.. |INTRODUCED_IN_CMAKE_VERSION| replace:: 4.1
.. |WARNS_OR_DOES_NOT_WARN| replace:: does *not* warn
.. include:: include/STANDARD_ADVICE.rst
.. include:: include/DEPRECATED.rst