Merge topic 'doc-transitive-properties'
c3c00460b2
Help: Clarify TARGET_PROPERTY genex evaluation of transitive properties9ec61c72e3
Help: Add intro text to cmake-buildsystem(7) build properties sections Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !9499
This commit is contained in:
commit
8113197270
@ -314,6 +314,9 @@ dependencies.
|
||||
Target Compile Properties
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
These represent the `build specification <Target Build Specification_>`_
|
||||
for compiling a target.
|
||||
|
||||
:prop_tgt:`COMPILE_DEFINITIONS`
|
||||
List of compile definitions for compiling sources in the target.
|
||||
These are passed to the compiler with ``-D`` flags, or equivalent,
|
||||
@ -378,6 +381,9 @@ Target Compile Properties
|
||||
Target Link Properties
|
||||
^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
These represent the `build specification <Target Build Specification_>`_
|
||||
for linking a target.
|
||||
|
||||
:prop_tgt:`LINK_LIBRARIES`
|
||||
List of link libraries for linking the target, if it is an executable,
|
||||
shared library, or module library. Entries for `Normal Libraries`_ are
|
||||
@ -510,6 +516,9 @@ command. See :ref:`Creating Packages` for more.
|
||||
Transitive Compile Properties
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
These represent `usage requirements <Target Usage Requirements_>`_ for
|
||||
compiling consumers.
|
||||
|
||||
:prop_tgt:`INTERFACE_COMPILE_DEFINITIONS`
|
||||
List of compile definitions for compiling sources in the target's consumers.
|
||||
Typically these are used by the target's header files.
|
||||
@ -561,6 +570,9 @@ Transitive Compile Properties
|
||||
Transitive Link Properties
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
These represent `usage requirements <Target Usage Requirements_>`_ for
|
||||
linking consumers.
|
||||
|
||||
:prop_tgt:`INTERFACE_LINK_LIBRARIES`
|
||||
List of link libraries for linking the target's consumers, for
|
||||
those that are executables, shared libraries, or module libraries.
|
||||
|
@ -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