You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.9 KiB
41 lines
1.9 KiB
CMP0166
|
|
-------
|
|
|
|
.. versionadded:: 3.30
|
|
|
|
:genex:`TARGET_PROPERTY` evaluates link properties transitively over private
|
|
dependencies of static libraries.
|
|
|
|
In CMake 3.29 and below, the :genex:`TARGET_PROPERTY` generator expression
|
|
evaluates properties :prop_tgt:`INTERFACE_LINK_OPTIONS`,
|
|
:prop_tgt:`INTERFACE_LINK_DIRECTORIES`, and :prop_tgt:`INTERFACE_LINK_DEPENDS`
|
|
as if they were :ref:`Transitive Compile Properties` rather than
|
|
:ref:`Transitive Link Properties`, even when policy :policy:`CMP0099` is
|
|
set to ``NEW``. Private dependencies of static libraries, which appear in
|
|
their :prop_tgt:`INTERFACE_LINK_LIBRARIES` guarded by :genex:`LINK_ONLY`
|
|
generator expressions, are not followed. This is inconsistent with
|
|
evaluation of the same target properties during buildsystem generation.
|
|
|
|
CMake 3.30 and above prefer that :genex:`TARGET_PROPERTY` evaluates
|
|
properties :prop_tgt:`INTERFACE_LINK_OPTIONS`,
|
|
:prop_tgt:`INTERFACE_LINK_DIRECTORIES`, and :prop_tgt:`INTERFACE_LINK_DEPENDS`
|
|
as :ref:`Transitive Link Properties` such that private dependencies of static
|
|
libraries, which appear in their :prop_tgt:`INTERFACE_LINK_LIBRARIES` guarded
|
|
by :genex:`LINK_ONLY` generator expressions, are followed.
|
|
This policy provides compatibility for projects that have not been updated
|
|
to expect the new behavior.
|
|
|
|
The ``OLD`` behavior for this policy is for :genex:`TARGET_PROPERTY` to
|
|
evaluate properties :prop_tgt:`INTERFACE_LINK_OPTIONS`,
|
|
:prop_tgt:`INTERFACE_LINK_DIRECTORIES`, and :prop_tgt:`INTERFACE_LINK_DEPENDS`
|
|
as if they were :ref:`Transitive Compile Properties` by not following private
|
|
dependencies of static libraries. The ``NEW`` behavior for this policy is
|
|
to evaluate them as :ref:`Transitive Link Properties` by following private
|
|
dependencies of static libraries.
|
|
|
|
.. |INTRODUCED_IN_CMAKE_VERSION| replace:: 3.30
|
|
.. |WARNS_OR_DOES_NOT_WARN| replace:: does *not* warn
|
|
.. include:: STANDARD_ADVICE.txt
|
|
|
|
.. include:: DEPRECATED.txt
|