| Index: tools/gn/docs/reference.md
|
| diff --git a/tools/gn/docs/reference.md b/tools/gn/docs/reference.md
|
| index 22cbee0aa6802cc1617ae682066a29704eef8bc0..38e8ce75585548facfba40e50b0ff017b9fd6e3d 100644
|
| --- a/tools/gn/docs/reference.md
|
| +++ b/tools/gn/docs/reference.md
|
| @@ -2730,6 +2730,20 @@
|
|
|
| The command to run.
|
|
|
| + default_output_dir [string with substitutions]
|
| + Valid for: linker tools
|
| +
|
| + Default directory name for the output file relative to the
|
| + root_build_dir. It can contain other substitution patterns.
|
| + This will be the default value for the {{output_dir}} expansion
|
| + (discussed below) but will be overridden by the "output_dir"
|
| + variable in a target, if one is specified.
|
| +
|
| + GN doesn't do anything with this string other than pass it
|
| + along, potentially with target-specific overrides. It is the
|
| + tool's job to use the expansion so that the files will be in
|
| + the right place.
|
| +
|
| default_output_extension [string]
|
| Valid for: linker tools
|
|
|
| @@ -2746,7 +2760,7 @@
|
|
|
| Example: default_output_extension = ".exe"
|
|
|
| - depfile [string]
|
| + depfile [string with substitutions]
|
| Valid for: compiler tools (optional)
|
|
|
| If the tool can write ".d" files, this specifies the name of
|
| @@ -2808,13 +2822,11 @@
|
| ]
|
|
|
| Example for a linker tool that produces a .dll and a .lib. The
|
| - use of {{output_extension}} rather than hardcoding ".dll"
|
| - allows the extension of the library to be overridden on a
|
| - target-by-target basis, but in this example, it always
|
| - produces a ".lib" import library:
|
| + use of {{target_output_name}}, {{output_extension}} and
|
| + {{output_dir}} allows the target to override these values.
|
| outputs = [
|
| - "{{root_out_dir}}/{{target_output_name}}{{output_extension}}",
|
| - "{{root_out_dir}}/{{target_output_name}}.lib",
|
| + "{{output_dir}}/{{target_output_name}}{{output_extension}}",
|
| + "{{output_dir}}/{{target_output_name}}.lib",
|
| ]
|
|
|
| link_output [string with substitutions]
|
| @@ -2827,7 +2839,7 @@
|
| should match entries in the "outputs". If unspecified, the
|
| first item in the "outputs" array will be used for all. See
|
| "Separate linking and dependencies for shared libraries"
|
| - below for more. If link_output is set but runtime_link_output
|
| + below for more. If link_output is set but runtime_link_output
|
| is not set, runtime_link_output defaults to link_output.
|
|
|
| On Windows, where the tools produce a .dll shared library and
|
| @@ -2937,7 +2949,7 @@
|
| {{target_out_dir}}
|
| The directory of the generated file and output directories,
|
| respectively, for the current target. There is no trailing
|
| - slash.
|
| + slash. See also {{output_dir}} for linker tools.
|
| Example: "out/base/test"
|
|
|
| {{target_output_name}}
|
| @@ -3020,6 +3032,21 @@
|
|
|
| Example: "-lfoo -lbar"
|
|
|
| + {{output_dir}}
|
| + The value of the "output_dir" variable in the target, or the
|
| + the value of the "default_output_dir" value in the tool if the
|
| + target does not override the output directory. This will be
|
| + relative to the root_build_dir and will not end in a slash.
|
| + Will be "." for output to the root_build_dir.
|
| +
|
| + This is subtly different than {{target_out_dir}} which is
|
| + defined by GN based on the target's path and not overridable.
|
| + {{output_dir}} is for the final output, {{target_out_dir}} is
|
| + generally for object files and other outputs.
|
| +
|
| + Usually {{output_dir}} would be defined in terms of either
|
| + {{target_out_dir}} or {{root_out_dir}}
|
| +
|
| {{output_extension}}
|
| The value of the "output_extension" variable in the target,
|
| or the value of the "default_output_extension" value in the
|
| @@ -3075,13 +3102,13 @@
|
| tool("solink") {
|
| command = "..."
|
| outputs = [
|
| - "{{root_out_dir}}/{{target_output_name}}{{output_extension}}",
|
| - "{{root_out_dir}}/{{target_output_name}}{{output_extension}}.TOC",
|
| + "{{output_dir}}/{{target_output_name}}{{output_extension}}",
|
| + "{{output_dir}}/{{target_output_name}}{{output_extension}}.TOC",
|
| ]
|
| link_output =
|
| - "{{root_out_dir}}/{{target_output_name}}{{output_extension}}"
|
| + "{{output_dir}}/{{target_output_name}}{{output_extension}}"
|
| depend_output =
|
| - "{{root_out_dir}}/{{target_output_name}}{{output_extension}}.TOC"
|
| + "{{output_dir}}/{{target_output_name}}{{output_extension}}.TOC"
|
| restat = true
|
| }
|
|
|
| @@ -4660,6 +4687,36 @@
|
|
|
|
|
| ```
|
| +## **output_dir**: [directory] Directory to put output file in.
|
| +
|
| +```
|
| + For library and executable targets, overrides the directory for the
|
| + final output. This must be in the root_build_dir or a child thereof.
|
| +
|
| + This should generally be in the root_out_dir or a subdirectory thereof
|
| + (the root_out_dir will be the same as the root_build_dir for the
|
| + default toolchain, and will be a subdirectory for other toolchains).
|
| + Not putting the output in a subdirectory of root_out_dir can result
|
| + in collisions between different toolchains, so you will need to take
|
| + steps to ensure that your target is only present in one toolchain.
|
| +
|
| + Normally the toolchain specifies the output directory for libraries
|
| + and executables (see "gn help tool"). You will have to consult that
|
| + for the default location. The default location will be used if
|
| + output_dir is undefined or empty.
|
| +
|
| +```
|
| +
|
| +### **Example**
|
| +
|
| +```
|
| + shared_library("doom_melon") {
|
| + output_dir = "$root_out_dir/plugin_libs"
|
| + ...
|
| + }
|
| +
|
| +
|
| +```
|
| ## **output_extension**: Value to use for the output's file extension.
|
|
|
| ```
|
| @@ -5724,6 +5781,10 @@
|
| ### **Placeholders**
|
|
|
| ```
|
| + This section discusses only placeholders for actions. There are other
|
| + placeholders used in the definition of tools. See "gn help tool" for
|
| + those.
|
| +
|
| {{source}}
|
| The name of the source file including directory (*). This will
|
| generally be used for specifying inputs to a script in the
|
|
|