mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-05 21:31:08 -06:00
cmGeneratorExpressionNode: implement COMPILE_ONLY genex
This generator expression is the inverse of `LINK_ONLY` and only coveys usage requirements for the purposes of compilation. Its intended use is to avoid needing to export targets that do not have link usage requirements (e.g., header-only libraries) when used by another target. See: #15415
This commit is contained in:
@@ -966,15 +966,18 @@ Compile Context
|
||||
|
||||
.. versionadded:: 3.27
|
||||
|
||||
Content of ``...``, except while collecting :ref:`Target Usage Requirements`,
|
||||
in which case it is the empty string. This is intended for use in an
|
||||
:prop_tgt:`INTERFACE_LINK_LIBRARIES` target property, typically populated
|
||||
via the :command:`target_link_libraries` command, to specify private
|
||||
compilation requirements without other usage requirements.
|
||||
Content of ``...``, when collecting :ref:`Target Usage Requirements`,
|
||||
otherwise it is the empty string. This is intended for use in an
|
||||
:prop_tgt:`INTERFACE_LINK_LIBRARIES` and :prop_tgt:`LINK_LIBRARIES` target
|
||||
properties, typically populated via the :command:`target_link_libraries` command.
|
||||
Provides compilation usage requirements without any linking requirements.
|
||||
|
||||
Use cases include header-only usage where all usages are known to not have
|
||||
linking requirements (e.g., all-``inline`` or C++ template libraries).
|
||||
|
||||
Note that for proper evaluation of this expression requires policy :policy:`CMP0099`
|
||||
to be set to `NEW`.
|
||||
|
||||
Linker Language And ID
|
||||
^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
|
||||
Reference in New Issue
Block a user