| Index: tools/gn/docs/reference.md
|
| diff --git a/tools/gn/docs/reference.md b/tools/gn/docs/reference.md
|
| index ff096cc7075e5dfe6eff165441dd845dcda69ad9..acf0ac17fe6433ab4366eb553f2b731695c8c4d3 100644
|
| --- a/tools/gn/docs/reference.md
|
| +++ b/tools/gn/docs/reference.md
|
| @@ -539,6 +539,15 @@
|
|
|
| ```
|
|
|
| +### **Printing outputs**
|
| +
|
| +```
|
| + The "outputs" section will list all outputs that apply, including
|
| + the outputs computed from the tool definition (eg for "executable",
|
| + "static_library", ... targets).
|
| +
|
| +```
|
| +
|
| ### **Printing deps**
|
|
|
| ```
|
| @@ -2493,11 +2502,16 @@
|
|
|
| set_defaults can be used for built-in target types ("executable",
|
| "shared_library", etc.) and custom ones defined via the "template"
|
| - command.
|
| + command. It can be called more than once and the most recent call in
|
| + any scope will apply, but there is no way to refer to the previous
|
| + defaults and modify them (each call to set_defaults must supply a
|
| + complete list of all defaults it wants). If you want to share
|
| + defaults, store them in a separate variable.
|
|
|
| ```
|
|
|
| -### **Example**:
|
| +### **Example**
|
| +
|
| ```
|
| set_defaults("static_library") {
|
| configs = [ "//tools/mything:settings" ]
|
| @@ -2645,6 +2659,33 @@
|
|
|
|
|
| ```
|
| +## **split_list**: Splits a list into N different sub-lists.
|
| +
|
| +```
|
| + result = split_list(input, n)
|
| +
|
| + Given a list and a number N, splits the list into N sub-lists of
|
| + approximately equal size. The return value is a list of the sub-lists.
|
| + The result will always be a list of size N. If N is greater than the
|
| + number of elements in the input, it will be padded with empty lists.
|
| +
|
| + The expected use is to divide source files into smaller uniform
|
| + chunks.
|
| +
|
| +```
|
| +
|
| +### **Example**
|
| +
|
| +```
|
| + The code:
|
| + mylist = [1, 2, 3, 4, 5, 6]
|
| + print(split_list(mylist, 3))
|
| +
|
| + Will print:
|
| + [[1, 2], [3, 4], [5, 6]
|
| +
|
| +
|
| +```
|
| ## **static_library**: Declare a static library target.
|
|
|
| ```
|
| @@ -3591,6 +3632,40 @@
|
|
|
|
|
| ```
|
| +## **invoker**: [string] The invoking scope inside a template.
|
| +
|
| +```
|
| + Inside a template invocation, this variable refers to the scope of
|
| + the invoker of the template. Outside of template invocations, this
|
| + variable is undefined.
|
| +
|
| + All of the variables defined inside the template invocation are
|
| + accessible as members of the "invoker" scope. This is the way that
|
| + templates read values set by the callers.
|
| +
|
| + This is often used with "defined" to see if a value is set on the
|
| + invoking scope.
|
| +
|
| + See "gn help template" for more examples.
|
| +
|
| +```
|
| +
|
| +### **Example**
|
| +
|
| +```
|
| + template("my_template") {
|
| + print(invoker.sources) # Prints [ "a.cc", "b.cc" ]
|
| + print(defined(invoker.foo)) # Prints false.
|
| + print(defined(invoker.bar)) # Prints true.
|
| + }
|
| +
|
| + my_template("doom_melon") {
|
| + sources = [ "a.cc", "b.cc" ]
|
| + bar = 123
|
| + }
|
| +
|
| +
|
| +```
|
| ## **python_path**: Absolute path of Python.
|
|
|
| ```
|
| @@ -3721,6 +3796,49 @@
|
|
|
|
|
| ```
|
| +## **target_name**: [string] The name of the current target.
|
| +
|
| +```
|
| + Inside a target or template invocation, this variable refers to the
|
| + name given to the target or template invocation. Outside of these,
|
| + this variable is undefined.
|
| +
|
| + This is most often used in template definitions to name targets
|
| + defined in the template based on the name of the invocation. This
|
| + is necessary both to ensure generated targets have unique names and
|
| + to generate a target with the exact name of the invocation that
|
| + other targets can depend on.
|
| +
|
| + Be aware that this value will always reflect the innermost scope. So
|
| + when defining a target inside a template, target_name will refer to
|
| + the target rather than the template invocation. To get the name of the
|
| + template invocation in this case, you should save target_name to a
|
| + temporary variable outside of any target definitions.
|
| +
|
| + See "gn help template" for more examples.
|
| +
|
| +```
|
| +
|
| +### **Example**
|
| +
|
| +```
|
| + executable("doom_melon") {
|
| + print(target_name) # Prints "doom_melon".
|
| + }
|
| +
|
| + template("my_template") {
|
| + print(target_name) # Prints "space_ray" when invoked below.
|
| +
|
| + executable(target_name + "_impl") {
|
| + print(target_name) # Prints "space_ray_impl".
|
| + }
|
| + }
|
| +
|
| + my_template("space_ray") {
|
| + }
|
| +
|
| +
|
| +```
|
| ## **target_os**: The desired operating system for the build.
|
|
|
| ```
|
|
|