mirror of
https://github.com/Kitware/CMake.git
synced 2026-02-22 06:59:01 -06:00
Merge topic 'build-graph-opt-docs' into release-4.1
fac5e622b7Help/OPTIMIZE_DEPENDENCIES: xref with CMP0154 documentation03f5ffa2caHelp/OPTIMIZE_DEPENDENCIES: move period outside of parenthetical Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !11275
This commit is contained in:
@@ -20,7 +20,8 @@ their own target by default. Generated public headers must be specified
|
||||
as members of a ``PUBLIC`` (or ``INTERFACE``) ``FILE_SET``, typically of
|
||||
type ``HEADERS``. With this information, :ref:`Ninja Generators` may omit
|
||||
the above-mentioned conservative dependencies and produce more efficient
|
||||
build graphs.
|
||||
build graphs. Dependents to such targets may also prune dependencies to such
|
||||
targets when using the :prop_tgt:`OPTIMIZE_DEPENDENCIES` target property.
|
||||
|
||||
Additionally, if the custom command's output is a member of a file set of type
|
||||
``CXX_MODULES``, it will additionally not be required to exist before
|
||||
|
||||
@@ -21,13 +21,15 @@ any of the following criteria:
|
||||
* The dependency has any ``PRE_BUILD``, ``PRE_LINK``, or ``POST_BUILD`` custom
|
||||
commands associated with it.
|
||||
* The dependency contains any source files that were generated by a custom
|
||||
command.
|
||||
command. However, if :policy:`CMP0154` is `NEW` for the dependency and it
|
||||
uses :ref:`File Sets`, only source files that are not in a ``PUBLIC``,
|
||||
``INTERFACE``, or of type ``CXX_MODULES`` are considered.
|
||||
* The dependency contains any languages which produce side effects that are
|
||||
relevant to the library. Currently, all languages except C, C++, Objective-C,
|
||||
Objective-C++, assembly, and CUDA are assumed to produce side effects.
|
||||
However, side effects from one language are assumed not to be relevant to
|
||||
another (for example, a Fortran library is assumed to not have any side
|
||||
effects that are relevant for a Swift library.)
|
||||
effects that are relevant for a Swift library).
|
||||
|
||||
As an example, assume you have a static Fortran library which depends on a
|
||||
static C library, which in turn depends on a static Fortran library. The
|
||||
|
||||
Reference in New Issue
Block a user