| 1234567891011121314151617181920212223242526272829303132333435 |
- 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. It takes effect during buildsystem generation.
- Generator expressions are evaluated in each directory using the policy setting
- as of the end of its ``CMakeLists.txt``. As an exception, generator
- expressions evaluated by the :command:`file(GENERATE)` command use the
- policy setting as of its call site.
- 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
|