Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(168)

Side by Side Diff: tools/gn/docs/reference.md

Issue 2514333005: Add support for customizing GN's args text. (Closed)
Patch Set: update docs Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tools/gn/command_args.cc ('k') | tools/gn/setup.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # GN Reference 1 # GN Reference
2 2
3 *This page is automatically generated from* `gn help --markdown all`. 3 *This page is automatically generated from* `gn help --markdown all`.
4 4
5 ## **\--args**: Specifies build arguments overrides. 5 ## **\--args**: Specifies build arguments overrides.
6 6
7 ``` 7 ```
8 See "gn help buildargs" for an overview of how build arguments work. 8 See "gn help buildargs" for an overview of how build arguments work.
9 9
10 Most operations take a build directory. The build arguments are taken from 10 Most operations take a build directory. The build arguments are taken from
(...skipping 3875 matching lines...) Expand 10 before | Expand all | Expand 10 after
3886 primary object(s) of the build. It will match the OS of the default 3886 primary object(s) of the build. It will match the OS of the default
3887 toolchain. 3887 toolchain.
3888 3888
3889 In many cases, this is the same as "host_os", but in the case of 3889 In many cases, this is the same as "host_os", but in the case of
3890 cross-compiles, it may be different. This variable differs from "current_os" 3890 cross-compiles, it may be different. This variable differs from "current_os"
3891 in that it can be referenced from inside any toolchain and will always return 3891 in that it can be referenced from inside any toolchain and will always return
3892 the initial value. 3892 the initial value.
3893 3893
3894 This should be set to the most specific value possible. So, "android" or 3894 This should be set to the most specific value possible. So, "android" or
3895 "chromeos" should be used instead of "linux" where applicable, even though 3895 "chromeos" should be used instead of "linux" where applicable, even though
3896 Android and Chrome OS are both Linux variants. This can mean that one needs to 3896 Android and ChromeOS are both Linux variants. This can mean that one needs to
3897 write 3897 write
3898 3898
3899 if (target_os == "android" || target_os == "linux") { 3899 if (target_os == "android" || target_os == "linux") {
3900 # ... 3900 # ...
3901 } 3901 }
3902 3902
3903 and so forth. 3903 and so forth.
3904 3904
3905 This value is not used internally by GN for any purpose, so it may be set to 3905 This value is not used internally by GN for any purpose, so it may be set to
3906 whatever value is needed for the build. GN defaults this value to the empty 3906 whatever value is needed for the build. GN defaults this value to the empty
(...skipping 1393 matching lines...) Expand 10 before | Expand all | Expand 10 after
5300 5300
5301 5301
5302 ``` 5302 ```
5303 ## **precompiled_header**: [string] Header file to precompile. 5303 ## **precompiled_header**: [string] Header file to precompile.
5304 5304
5305 ``` 5305 ```
5306 Precompiled headers will be used when a target specifies this value, or a 5306 Precompiled headers will be used when a target specifies this value, or a
5307 config applying to this target specifies this value. In addition, the tool 5307 config applying to this target specifies this value. In addition, the tool
5308 corresponding to the source files must also specify precompiled headers (see 5308 corresponding to the source files must also specify precompiled headers (see
5309 "gn help tool"). The tool will also specify what type of precompiled headers 5309 "gn help tool"). The tool will also specify what type of precompiled headers
5310 to use. 5310 to use, by setting precompiled_header_type to either "gcc" or "msvc".
5311 5311
5312 The precompiled header/source variables can be specified on a target or a 5312 The precompiled header/source variables can be specified on a target or a
5313 config, but must be the same for all configs applying to a given target since 5313 config, but must be the same for all configs applying to a given target since
5314 a target can only have one precompiled header. 5314 a target can only have one precompiled header.
5315 5315
5316 If you use both C and C++ sources, the precompiled header and source file
5317 will be compiled once per language. You will want to make sure to wrap C++
5318 includes in __cplusplus #ifdefs so the file will compile in C mode.
5319
5320 ```
5321
5322 ### **GCC precompiled headers**
5323
5324 ```
5325 When using GCC-style precompiled headers, "precompiled_source" contains the
5326 path of a .h file that is precompiled and then included by all source files
5327 in targets that set "precompiled_source".
5328
5329 The value of "precompiled_header" is not used with GCC-style precompiled
5330 headers.
5331
5316 ``` 5332 ```
5317 5333
5318 ### **MSVC precompiled headers** 5334 ### **MSVC precompiled headers**
5319 5335
5320 ``` 5336 ```
5321 When using MSVC-style precompiled headers, the "precompiled_header" value is 5337 When using MSVC-style precompiled headers, the "precompiled_header" value is
5322 a string corresponding to the header. This is NOT a path to a file that GN 5338 a string corresponding to the header. This is NOT a path to a file that GN
5323 recognises, but rather the exact string that appears in quotes after an 5339 recognises, but rather the exact string that appears in quotes after
5324 #include line in source code. The compiler will match this string against 5340 an #include line in source code. The compiler will match this string against
5325 includes or forced includes (/FI). 5341 includes or forced includes (/FI).
5326 5342
5327 MSVC also requires a source file to compile the header with. This must be 5343 MSVC also requires a source file to compile the header with. This must be
5328 specified by the "precompiled_source" value. In contrast to the header value, 5344 specified by the "precompiled_source" value. In contrast to the header value,
5329 this IS a GN-style file name, and tells GN which source file to compile to 5345 this IS a GN-style file name, and tells GN which source file to compile to
5330 make the .pch file used for subsequent compiles. 5346 make the .pch file used for subsequent compiles.
5331 5347
5332 If you use both C and C++ sources, the precompiled header and source file
5333 will be compiled using both tools. You will want to make sure to wrap C++
5334 includes in __cplusplus #ifdefs so the file will compile in C mode.
5335
5336 For example, if the toolchain specifies MSVC headers: 5348 For example, if the toolchain specifies MSVC headers:
5337 5349
5338 toolchain("vc_x64") { 5350 toolchain("vc_x64") {
5339 ... 5351 ...
5340 tool("cxx") { 5352 tool("cxx") {
5341 precompiled_header_type = "msvc" 5353 precompiled_header_type = "msvc"
5342 ... 5354 ...
5343 5355
5344 You might make a config like this: 5356 You might make a config like this:
5345 5357
5346 config("use_precompiled_headers") { 5358 config("use_precompiled_headers") {
5347 precompiled_header = "build/precompile.h" 5359 precompiled_header = "build/precompile.h"
5348 precompiled_source = "//build/precompile.cc" 5360 precompiled_source = "//build/precompile.cc"
5349 5361
5350 # Either your source files should #include "build/precompile.h" 5362 # Either your source files should #include "build/precompile.h"
5351 # first, or you can do this to force-include the header. 5363 # first, or you can do this to force-include the header.
5352 cflags = [ "/FI$precompiled_header" ] 5364 cflags = [ "/FI$precompiled_header" ]
5353 } 5365 }
5354 5366
5355 And then define a target that uses the config: 5367 And then define a target that uses the config:
5356 5368
5357 executable("doom_melon") { 5369 executable("doom_melon") {
5358 configs += [ ":use_precompiled_headers" ] 5370 configs += [ ":use_precompiled_headers" ]
5359 ... 5371 ...
5360 5372
5361 5373
5362 ``` 5374 ```
5375 ## **precompiled_header_type**: [string] "gcc" or "msvc".
5376
5377 ```
5378 See "gn help precompiled_header".
5379
5380
5381 ```
5363 ## **precompiled_source**: [file name] Source file to precompile. 5382 ## **precompiled_source**: [file name] Source file to precompile.
5364 5383
5365 ``` 5384 ```
5366 The source file that goes along with the precompiled_header when using 5385 The source file that goes along with the precompiled_header when using
5367 "msvc"-style precompiled headers. It will be implicitly added to the sources 5386 "msvc"-style precompiled headers. It will be implicitly added to the sources
5368 of the target. See "gn help precompiled_header". 5387 of the target. See "gn help precompiled_header".
5369 5388
5370 5389
5371 ``` 5390 ```
5372 ## **product_type**: Product type for Xcode projects. 5391 ## **product_type**: Product type for Xcode projects.
(...skipping 416 matching lines...) Expand 10 before | Expand all | Expand 10 after
5789 directory. If you want to specify a different file, you can additionally pass 5808 directory. If you want to specify a different file, you can additionally pass
5790 --dotfile: 5809 --dotfile:
5791 5810
5792 gn gen out/Debug --root=/home/build --dotfile=/home/my_gn_file.gn 5811 gn gen out/Debug --root=/home/build --dotfile=/home/my_gn_file.gn
5793 5812
5794 ``` 5813 ```
5795 5814
5796 ### **Variables** 5815 ### **Variables**
5797 5816
5798 ``` 5817 ```
5818 arg_file_template [optional]
5819 Path to a file containing the text that should be used as the default
5820 args.gn content when you run `gn args`.
5821
5799 buildconfig [required] 5822 buildconfig [required]
5800 Label of the build config file. This file will be used to set up the 5823 Path to the build config file. This file will be used to set up the
5801 build file execution environment for each toolchain. 5824 build file execution environment for each toolchain.
5802 5825
5803 check_targets [optional] 5826 check_targets [optional]
5804 A list of labels and label patterns that should be checked when running 5827 A list of labels and label patterns that should be checked when running
5805 "gn check" or "gn gen --check". If unspecified, all targets will be 5828 "gn check" or "gn gen --check". If unspecified, all targets will be
5806 checked. If it is the empty list, no targets will be checked. 5829 checked. If it is the empty list, no targets will be checked.
5807 5830
5808 The format of this list is identical to that of "visibility" so see "gn 5831 The format of this list is identical to that of "visibility" so see "gn
5809 help visibility" for examples. 5832 help visibility" for examples.
5810 5833
(...skipping 854 matching lines...) Expand 10 before | Expand all | Expand 10 after
6665 ** \--root**: Explicitly specify source root. 6688 ** \--root**: Explicitly specify source root.
6666 ** \--runtime-deps-list-file**: Save runtime dependencies for targets in file. 6689 ** \--runtime-deps-list-file**: Save runtime dependencies for targets in file.
6667 ** \--script-executable**: Set the executable used to execute scripts. 6690 ** \--script-executable**: Set the executable used to execute scripts.
6668 ** \--threads**: Specify number of worker threads. 6691 ** \--threads**: Specify number of worker threads.
6669 ** \--time**: Outputs a summary of how long everything took. 6692 ** \--time**: Outputs a summary of how long everything took.
6670 ** \--tracelog**: Writes a Chrome-compatible trace log to the given file. 6693 ** \--tracelog**: Writes a Chrome-compatible trace log to the given file.
6671 ** -v**: Verbose logging. 6694 ** -v**: Verbose logging.
6672 ** \--version**: Prints the GN version number and exits. 6695 ** \--version**: Prints the GN version number and exits.
6673 6696
6674 ``` 6697 ```
OLDNEW
« no previous file with comments | « tools/gn/command_args.cc ('k') | tools/gn/setup.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698