| Index: tools/gn/docs/reference.md
|
| diff --git a/tools/gn/docs/reference.md b/tools/gn/docs/reference.md
|
| index cb31157dc119e9744fd397189a6ce8b70e7fc616..cf3ab28bc471595835242720b36dfdada3d120ec 100644
|
| --- a/tools/gn/docs/reference.md
|
| +++ b/tools/gn/docs/reference.md
|
| @@ -154,6 +154,25 @@
|
|
|
|
|
| ```
|
| +## **\--threads**: Specify number of worker threads.
|
| +
|
| +```
|
| + GN runs many threads to load and run build files. This can make
|
| + debugging challenging. Or you may want to experiment with different
|
| + values to see how it affects performance.
|
| +
|
| + The parameter is the number of worker threads. This does not count the
|
| + main thread (so there are always at least two).
|
| +
|
| +```
|
| +
|
| +### **Examples**
|
| +
|
| +```
|
| + gen gen out/Default --threads=1
|
| +
|
| +
|
| +```
|
| ## **\--time**: Outputs a summary of how long everything took.
|
|
|
| ```
|
| @@ -1010,7 +1029,7 @@
|
| ### **Variables valid in a config definition**:
|
| ```
|
| Flags: cflags, cflags_c, cflags_cc, cflags_objc, cflags_objcc,
|
| - defines, include_dirs, ldflags, lib_dirs, libs
|
| + defines, include_dirs, ldflags, lib_dirs, libs,
|
| precompiled_header, precompiled_source
|
|
|
| ```
|
| @@ -1209,7 +1228,7 @@
|
|
|
| ```
|
| Flags: cflags, cflags_c, cflags_cc, cflags_objc, cflags_objcc,
|
| - defines, include_dirs, ldflags, lib_dirs, libs
|
| + defines, include_dirs, ldflags, lib_dirs, libs,
|
| precompiled_header, precompiled_source
|
| Deps: data_deps, deps, forward_dependent_configs_from, public_deps
|
| Dependent configs: all_dependent_configs, public_configs
|
| @@ -1984,7 +2003,7 @@
|
|
|
| ```
|
| Flags: cflags, cflags_c, cflags_cc, cflags_objc, cflags_objcc,
|
| - defines, include_dirs, ldflags, lib_dirs, libs
|
| + defines, include_dirs, ldflags, lib_dirs, libs,
|
| precompiled_header, precompiled_source
|
| Deps: data_deps, deps, forward_dependent_configs_from, public_deps
|
| Dependent configs: all_dependent_configs, public_configs
|
| @@ -2025,7 +2044,7 @@
|
|
|
| ```
|
| Flags: cflags, cflags_c, cflags_cc, cflags_objc, cflags_objcc,
|
| - defines, include_dirs, ldflags, lib_dirs, libs
|
| + defines, include_dirs, ldflags, lib_dirs, libs,
|
| precompiled_header, precompiled_source
|
| Deps: data_deps, deps, forward_dependent_configs_from, public_deps
|
| Dependent configs: all_dependent_configs, public_configs
|
| @@ -2049,7 +2068,7 @@
|
|
|
| ```
|
| Flags: cflags, cflags_c, cflags_cc, cflags_objc, cflags_objcc,
|
| - defines, include_dirs, ldflags, lib_dirs, libs
|
| + defines, include_dirs, ldflags, lib_dirs, libs,
|
| precompiled_header, precompiled_source
|
| Deps: data_deps, deps, forward_dependent_configs_from, public_deps
|
| Dependent configs: all_dependent_configs, public_configs
|
| @@ -2413,13 +2432,14 @@
|
|
|
| Type of precompiled headers. If undefined or the empty string,
|
| precompiled headers will not be used for this tool. Otherwise
|
| - use "msvc" which is the only currently supported value.
|
| + use "gcc" or "msvc".
|
|
|
| For precompiled headers to be used for a given target, the
|
| target (or a config applied to it) must also specify a
|
| "precompiled_header" and, for "msvc"-style headers, a
|
| - "precompiled_source" value.
|
| -
|
| + "precompiled_source" value. If the type is "gcc", then both
|
| + "precompiled_header" and "precompiled_source" must resolve
|
| + to the same file, despite the different formats required for each.
|
| See "gn help precompiled_header" for more.
|
|
|
| restat [boolean]
|
| @@ -3125,7 +3145,7 @@
|
|
|
| ```
|
|
|
| -### **Ordering of flags and values**:
|
| +### **Ordering of flags and values**
|
|
|
| ```
|
| 1. Those set on the current target (not in a config).
|
| @@ -3209,7 +3229,7 @@
|
|
|
| ```
|
|
|
| -### **Ordering of flags and values**:
|
| +### **Ordering of flags and values**
|
|
|
| ```
|
| 1. Those set on the current target (not in a config).
|
| @@ -3242,7 +3262,7 @@
|
|
|
| ```
|
|
|
| -### **Ordering of flags and values**:
|
| +### **Ordering of flags and values**
|
|
|
| ```
|
| 1. Those set on the current target (not in a config).
|
| @@ -3275,7 +3295,7 @@
|
|
|
| ```
|
|
|
| -### **Ordering of flags and values**:
|
| +### **Ordering of flags and values**
|
|
|
| ```
|
| 1. Those set on the current target (not in a config).
|
| @@ -3308,7 +3328,7 @@
|
|
|
| ```
|
|
|
| -### **Ordering of flags and values**:
|
| +### **Ordering of flags and values**
|
|
|
| ```
|
| 1. Those set on the current target (not in a config).
|
| @@ -3341,7 +3361,7 @@
|
|
|
| ```
|
|
|
| -### **Ordering of flags and values**:
|
| +### **Ordering of flags and values**
|
|
|
| ```
|
| 1. Those set on the current target (not in a config).
|
| @@ -3438,15 +3458,25 @@
|
|
|
|
|
| ```
|
| -## **configs**: Configs applying to this target.
|
| +## **configs**: Configs applying to this target or config.
|
|
|
| ```
|
| A list of config labels.
|
|
|
| - The include_dirs, defines, etc. in each config are appended in the
|
| - order they appear to the compile command for each file in the target.
|
| - They will appear after the include_dirs, defines, etc. that the target
|
| - sets directly.
|
| +```
|
| +
|
| +### **Configs on a target**
|
| +
|
| +```
|
| + When used on a target, the include_dirs, defines, etc. in each config
|
| + are appended in the order they appear to the compile command for each
|
| + file in the target. They will appear after the include_dirs, defines,
|
| + etc. that the target sets directly.
|
| +
|
| + Since configs apply after the values set on a target, directly setting
|
| + a compiler flag will prepend it to the command line. If you want to
|
| + append a flag instead, you can put that flag in a one-off config and
|
| + append that config to the target's configs list.
|
|
|
| The build configuration script will generally set up the default
|
| configs applying to a given target type (see "set_defaults").
|
| @@ -3455,7 +3485,32 @@
|
|
|
| ```
|
|
|
| -### **Ordering of flags and values**:
|
| +### **Configs on a config**
|
| +
|
| +```
|
| + It is possible to create composite configs by specifying configs on a
|
| + config. One might do this to forward values, or to factor out blocks
|
| + of settings from very large configs into more manageable named chunks.
|
| +
|
| + In this case, the composite config is expanded to be the concatenation
|
| + of its own values, and in order, the values from its sub-configs
|
| + *before* anything else happens. This has some ramifications:
|
| +
|
| + - A target has no visibility into a config's sub-configs. Target
|
| + code only sees the name of the composite config. It can't remove
|
| + sub-configs or opt in to only parts of it. The composite config may
|
| + not even be defined before the target is.
|
| +
|
| + - You can get duplication of values if a config is listed twice, say,
|
| + on a target and in a sub-config that also applies. In other cases,
|
| + the configs applying to a target are de-duped. It's expected that
|
| + if a config is listed as a sub-config that it is only used in that
|
| + context. (Note that it's possible to fix this and de-dupe, but it's
|
| + not normally relevant and complicates the implementation.)
|
| +
|
| +```
|
| +
|
| +### **Ordering of flags and values**
|
|
|
| ```
|
| 1. Those set on the current target (not in a config).
|
| @@ -3474,11 +3529,32 @@
|
|
|
| ```
|
|
|
| -### **Example**:
|
| +### **Example**
|
| +
|
| ```
|
| - static_library("foo") {
|
| - configs -= "//build:no_rtti" # Don't use the default RTTI config.
|
| - configs += ":mysettings" # Add some of our own settings.
|
| + # Configs on a target.
|
| + source_set("foo") {
|
| + # Don't use the default RTTI config that BUILDCONFIG applied to us.
|
| + configs -= [ "//build:no_rtti" ]
|
| +
|
| + # Add some of our own settings.
|
| + configs += [ ":mysettings" ]
|
| + }
|
| +
|
| + # Create a default_optimization config that forwards to one of a set
|
| + # of more specialized configs depending on build flags. This pattern
|
| + # is useful because it allows a target to opt in to either a default
|
| + # set, or a more specific set, while avoid duplicating the settings in
|
| + # two places.
|
| + config("super_optimization") {
|
| + cflags = [ ... ]
|
| + }
|
| + config("default_optimization") {
|
| + if (optimize_everything) {
|
| + configs = [ ":super_optimization" ]
|
| + } else {
|
| + configs = [ ":no_optimization" ]
|
| + }
|
| }
|
|
|
|
|
| @@ -3547,7 +3623,7 @@
|
|
|
| ```
|
|
|
| -### **Ordering of flags and values**:
|
| +### **Ordering of flags and values**
|
|
|
| ```
|
| 1. Those set on the current target (not in a config).
|
| @@ -3611,10 +3687,7 @@
|
| A list of target labels.
|
|
|
| Specifies private dependencies of a target. Shared and dynamic
|
| - libraries will be linked into the current target. Other target types
|
| - that can't be linked (like actions and groups) listed in "deps" will
|
| - be treated as "data_deps". Likewise, if the current target isn't
|
| - linkable, then all deps will be treated as "data_deps".
|
| + libraries will be linked into the current target.
|
|
|
| These dependencies are private in that it does not grant dependent
|
| targets the ability to include headers from the dependency, and direct
|
| @@ -3686,7 +3759,7 @@
|
|
|
| ```
|
|
|
| -### **Ordering of flags and values**:
|
| +### **Ordering of flags and values**
|
|
|
| ```
|
| 1. Those set on the current target (not in a config).
|
| @@ -3780,7 +3853,7 @@
|
|
|
| ```
|
|
|
| -### **Ordering of flags and values**:
|
| +### **Ordering of flags and values**
|
|
|
| ```
|
| 1. Those set on the current target (not in a config).
|
| @@ -3816,7 +3889,7 @@
|
|
|
| ```
|
|
|
| -### **Ordering of flags and values**:
|
| +### **Ordering of flags and values**
|
|
|
| ```
|
| 1. Those set on the current target (not in a config).
|
| @@ -3869,7 +3942,7 @@
|
|
|
| ```
|
|
|
| -### **Ordering of flags and values**:
|
| +### **Ordering of flags and values**
|
|
|
| ```
|
| 1. Those set on the current target (not in a config).
|
| @@ -4074,7 +4147,7 @@
|
|
|
| ```
|
|
|
| -### **Ordering of flags and values**:
|
| +### **Ordering of flags and values**
|
|
|
| ```
|
| 1. Those set on the current target (not in a config).
|
| @@ -4844,6 +4917,7 @@
|
| ** -q**: Quiet mode. Don't print output on success.
|
| ** \--root**: Explicitly specify source root.
|
| ** \--runtime-deps-list-file**: Save runtime dependencies for targets in file.
|
| +** \--threads**: Specify number of worker threads.
|
| ** \--time**: Outputs a summary of how long everything took.
|
| ** \--tracelog**: Writes a Chrome-compatible trace log to the given file.
|
| ** -v**: Verbose logging.
|
|
|