浏览代码

Merge topic 'build-graph-opt-docs'

fac5e622b7 Help/OPTIMIZE_DEPENDENCIES: xref with CMP0154 documentation
03f5ffa2ca Help/OPTIMIZE_DEPENDENCIES: move period outside of parenthetical

Acked-by: Kitware Robot <[email protected]>
Merge-request: !11275
Brad King 2 周之前
父节点
当前提交
490b6fe1f2
共有 2 个文件被更改,包括 6 次插入3 次删除
  1. 2 1
      Help/policy/CMP0154.rst
  2. 4 2
      Help/prop_tgt/OPTIMIZE_DEPENDENCIES.rst

+ 2 - 1
Help/policy/CMP0154.rst

@@ -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

+ 4 - 2
Help/prop_tgt/OPTIMIZE_DEPENDENCIES.rst

@@ -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