Help: Clarify TARGET_PROPERTY genex evaluation of transitive properties
Regularize and fill out a documentation pattern from commit ddb9442f48
(GenEx: Fix TARGET_PROPERTY evaluation of transitive link properties,
2024-04-22).
This commit is contained in:
parent
9ec61c72e3
commit
c3c00460b2
@ -1777,26 +1777,32 @@ The expressions have special evaluation rules for some properties:
|
||||
:ref:`semicolon-separated list <CMake Language Lists>` representing the union
|
||||
of the value on the target itself with the values of the corresponding
|
||||
:ref:`Target Usage Requirements` on targets named by the target's
|
||||
:prop_tgt:`LINK_LIBRARIES`. Evaluation of the usage requirements is
|
||||
transitive over the closure of the linked targets'
|
||||
:prop_tgt:`INTERFACE_LINK_LIBRARIES`.
|
||||
:prop_tgt:`LINK_LIBRARIES`:
|
||||
|
||||
* For :ref:`Target Compile Properties`, evaluation of corresponding usage
|
||||
requirements is transitive over the closure of the linked targets'
|
||||
:prop_tgt:`INTERFACE_LINK_LIBRARIES` *excluding* entries guarded by the
|
||||
:genex:`LINK_ONLY` generator expression.
|
||||
|
||||
* For :ref:`Target Link Properties`, evaluation of corresponding usage
|
||||
requirements is transitive over the closure of the linked targets'
|
||||
:prop_tgt:`INTERFACE_LINK_LIBRARIES` *including* entries guarded by the
|
||||
:genex:`LINK_ONLY` generator expression. See policy :policy:`CMP0166`.
|
||||
|
||||
Evaluation of :prop_tgt:`LINK_LIBRARIES` itself is not transitive.
|
||||
|
||||
* :ref:`Target Usage Requirements` evaluate as a
|
||||
:ref:`semicolon-separated list <CMake Language Lists>` representing the union
|
||||
of the value on the target itself with the values of the same properties on
|
||||
targets named by the target's :prop_tgt:`INTERFACE_LINK_LIBRARIES`.
|
||||
Evaluation is transitive over the closure of the target's
|
||||
:prop_tgt:`INTERFACE_LINK_LIBRARIES`:
|
||||
targets named by the target's :prop_tgt:`INTERFACE_LINK_LIBRARIES`:
|
||||
|
||||
* For :ref:`Transitive Compile Properties`, the transitive closure
|
||||
*excludes* entries of :prop_tgt:`INTERFACE_LINK_LIBRARIES` guarded
|
||||
by the :genex:`LINK_ONLY` generator expression.
|
||||
* For :ref:`Transitive Compile Properties`, evaluation is transitive over
|
||||
the closure of the target's :prop_tgt:`INTERFACE_LINK_LIBRARIES`
|
||||
*excluding* entries guarded by the :genex:`LINK_ONLY` generator expression.
|
||||
|
||||
* For :ref:`Transitive Link Properties`, the transitive closure is
|
||||
*includes* entries of :prop_tgt:`INTERFACE_LINK_LIBRARIES` guarded
|
||||
by the :genex:`LINK_ONLY` generator expression.
|
||||
* For :ref:`Transitive Link Properties`, evaluation is transitive over
|
||||
the closure of the target's :prop_tgt:`INTERFACE_LINK_LIBRARIES`
|
||||
*including* entries guarded by the :genex:`LINK_ONLY` generator expression.
|
||||
See policy :policy:`CMP0166`.
|
||||
|
||||
Evaluation of :prop_tgt:`INTERFACE_LINK_LIBRARIES` itself is not transitive.
|
||||
|
Loading…
Reference in New Issue
Block a user