gn - Man Page
Documentation for GN
Description
Commands (type gn help <command>“ for more help):”
- analyze:
Analyze which targets are affected by a list of files.
- args:
Display or configure arguments declared by the build.
- check:
Check header dependencies.
- clean:
Cleans the output directory.
- clean_stale:
Cleans the stale output files from the output directory.
- desc:
Show lots of insightful information about a target or config.
- format:
Format .gn files.
- gen:
Generate ninja files.
- help:
Does what you think.
- ls:
List matching targets.
- meta:
List target metadata collection results.
- outputs:
Which files a source/target make.
- path:
Find paths between two targets.
- refs:
Find stuff referencing a target or file.
Target declarations (type gn help <function>“ for more help):”
- action:
Declare a target that runs a script a single time.
- action_foreach:
Declare a target that runs a script over a set of files.
- bundle_data:
[iOS/macOS] Declare a target without output.
- copy:
Declare a target that copies files.
- create_bundle:
[iOS/macOS] Build an iOS or macOS bundle.
- executable:
Declare an executable target.
- generated_file:
Declare a generated_file target.
- group:
Declare a named group of targets.
- loadable_module:
Declare a loadable module target.
- rust_library:
Declare a Rust library target.
- rust_proc_macro:
Declare a Rust procedural macro target.
- shared_library:
Declare a shared library target.
- source_set:
Declare a source set target.
- static_library:
Declare a static library target.
- target:
Declare a target with the given programmatic type.
Buildfile functions (type gn help <function>“ for more help):”
- assert:
Assert an expression is true at generation time.
- config:
Defines a configuration object.
- declare_args:
Declare build arguments.
- defined:
Returns whether an identifier is defined.
- exec_script:
Synchronously run a script and return the output.
- filter_exclude:
Remove values that match a set of patterns.
- filter_include:
Remove values that do not match a set of patterns.
- filter_labels_exclude:
Remove labels that match a set of patterns.
- filter_labels_include:
Remove labels that do not match a set of patterns.
- foreach:
Iterate over a list.
- forward_variables_from:
Copies variables from a different scope.
- get_label_info:
Get an attribute from a target's label.
- get_path_info:
Extract parts of a file or directory name.
- get_target_outputs:
[file list] Get the list of outputs from a target.
- getenv:
Get an environment variable.
- import:
Import a file into the current scope.
- label_matches:
Returns whether a label matches any of a list of patterns.
- not_needed:
Mark variables from scope as not needed.
- pool:
Defines a pool object.
- print:
Prints to the console.
- print_stack_trace:
Prints a stack trace.
- process_file_template:
Do template expansion over a list of files.
- read_file:
Read a file into a variable.
- rebase_path:
Rebase a file or directory to another location.
- set_default_toolchain:
Sets the default toolchain name.
- set_defaults:
Set default values for a target type.
- split_list:
Splits a list into N different sub-lists.
- string_join:
Concatenates a list of strings with a separator.
- string_replace:
Replaces substring in the given string.
- string_split:
Split string into a list of strings.
- template:
Define a template rule.
- tool:
Specify arguments to a toolchain tool.
- toolchain:
Defines a toolchain.
- write_file:
Write a file to disk.
Built-in predefined variables (type gn help <variable>“ for more help):”
- current_cpu:
[string] The processor architecture of the current toolchain.
- current_os:
[string] The operating system of the current toolchain.
- current_toolchain:
[string] Label of the current toolchain.
- default_toolchain:
[string] Label of the default toolchain.
- gn_version:
[number] The version of gn.
- host_cpu:
[string] The processor architecture that GN is running on.
- host_os:
[string] The operating system that GN is running on.
- invoker:
[string] The invoking scope inside a template.
- python_path:
[string] Absolute path of Python.
- root_build_dir:
[string] Directory where build commands are run.
- root_gen_dir:
[string] Directory for the toolchain's generated files.
- root_out_dir:
[string] Root directory for toolchain output files.
- target_cpu:
[string] The desired cpu architecture for the build.
- target_gen_dir:
[string] Directory for a target's generated files.
- target_name:
[string] The name of the current target.
- target_os:
[string] The desired operating system for the build.
- target_out_dir:
[string] Directory for target output files.
Variables you set in targets (type gn help <variable>“ for more help):”
- aliased_deps:
[scope] Set of crate-dependency pairs.
- all_dependent_configs:
[label list] Configs to be forced on dependents.
- allow_circular_includes_from:
[label list] Permit includes from deps.
- arflags:
[string list] Arguments passed to static_library archiver.
- args:
[string list] Arguments passed to an action.
- asmflags:
[string list] Flags passed to the assembler.
- assert_no_deps:
[label pattern list] Ensure no deps on these targets.
- bridge_header:
[string] Path to C/Objective-C compatibility header.
- bundle_contents_dir:
Expansion of {{bundle_contents_dir}} in create_bundle.
- bundle_deps_filter:
[label list] A list of labels that are filtered out.
- bundle_executable_dir:
Expansion of {{bundle_executable_dir}} in create_bundle
- bundle_resources_dir:
Expansion of {{bundle_resources_dir}} in create_bundle.
- bundle_root_dir:
Expansion of {{bundle_root_dir}} in create_bundle.
- cflags:
[string list] Flags passed to all C compiler variants.
- cflags_c:
[string list] Flags passed to the C compiler.
- cflags_cc:
[string list] Flags passed to the C++ compiler.
- cflags_objc:
[string list] Flags passed to the Objective C compiler.
- cflags_objcc:
[string list] Flags passed to the Objective C++ compiler.
- check_includes:
[boolean] Controls whether a target's files are checked.
- code_signing_args:
[string list] [deprecated] Args for the post-processing script.
- code_signing_outputs:
[file list] [deprecated] Outputs of the post-processing step.
- code_signing_script:
[file name] [deprecated] Script for the post-processing step.
- code_signing_sources:
[file list] [deprecated] Sources for the post-processing step.
- complete_static_lib:
[boolean] Links all deps into a static library.
- configs:
[label list] Configs applying to this target or config.
- contents:
Contents to write to file.
- crate_name:
[string] The name for the compiled crate.
- crate_root:
[string] The root source file for a binary or library.
- crate_type:
[string] The type of linkage to use on a shared_library.
- data:
[file list] Runtime data file dependencies.
- data_deps:
[label list] Non-linked dependencies.
- data_keys:
[string list] Keys from which to collect metadata.
- defines:
[string list] C preprocessor defines.
- depfile:
[string] File name for input dependencies for actions.
- deps:
[label list] Private linked dependencies.
- externs:
[scope] Set of Rust crate-dependency pairs.
- framework_dirs:
[directory list] Additional framework search directories.
- frameworks:
[name list] Name of frameworks that must be linked.
- friend:
[label pattern list] Allow targets to include private headers.
- gen_deps:
[label list] Declares targets that should generate when this one does.
- include_dirs:
[directory list] Additional include directories.
- inputs:
[file list] Additional compile-time dependencies.
- ldflags:
[string list] Flags passed to the linker.
- lib_dirs:
[directory list] Additional library directories.
- libs:
[string list] Additional libraries to link.
- metadata:
[scope] Metadata of this target.
- mnemonic:
[string] Prefix displayed when ninja runs this action.
- module_name:
[string] The name for the compiled module.
- output_conversion:
Data format for generated_file targets.
- output_dir:
[directory] Directory to put output file in.
- output_extension:
[string] Value to use for the output's file extension.
- output_name:
[string] Name for the output file other than the default.
- output_prefix_override:
[boolean] Don't use prefix for output name.
- outputs:
[file list] Output files for actions and copy targets.
- partial_info_plist:
[filename] Path plist from asset catalog compiler.
- pool:
[string] Label of the pool used by binary targets and actions.
- post_processing_args:
[string list] Args for the post-processing script.
- post_processing_outputs:
[file list] Outputs of the post-processing step.
- post_processing_script:
[file name] Script for the post-processing step.
- post_processing_sources:
[file list] Sources for the post-processing step.
- precompiled_header:
[string] Header file to precompile.
- precompiled_header_type:
[string] "gcc" or "msvc".
- precompiled_source:
[file name] Source file to precompile.
- product_type:
[string] Product type for the bundle.
- public:
[file list] Declare public header files for a target.
- public_configs:
[label list] Configs applied to dependents.
- public_deps:
[label list] Declare public dependencies.
- rebase:
[boolean] Rebase collected metadata as files.
- response_file_contents:
[string list] Contents of .rsp file for actions.
- rustflags:
[string list] Flags passed to the Rust compiler.
- script:
[file name] Script file for actions.
- sources:
[file list] Source files for a target.
- swiftflags:
[string list] Flags passed to the swift compiler.
- testonly:
[boolean] Declares a target must only be used for testing.
- transparent:
[bool] True if the bundle is transparent.
- visibility:
[label list] A list of labels that can depend on a target.
- walk_keys:
[string list] Key(s) for managing the metadata collection walk.
- weak_frameworks:
[name list] Name of frameworks that must be weak linked.
- write_runtime_deps:
Writes the target's runtime_deps to the given path.
- xcasset_compiler_flags:
[string list] Flags passed to xcassets compiler
- xcode_extra_attributes:
[scope] Extra attributes for Xcode projects.
- xcode_test_application_name:
[string] Name for Xcode test target.
Other help topics
- all:
Print all the help at once
- buildargs:
How build arguments work.
- dotfile:
Info about the toplevel .gn file.
- execution:
Build graph and execution overview.
- grammar:
Language and grammar for GN build files.
- input_conversion:
Processing input from exec_script and read_file.
- file_pattern:
Matching more than one file.
- label_pattern:
Matching more than one label.
- labels:
About labels.
- metadata_collection:
About metadata and its collection.
- ninja_rules:
How Ninja build rules are named.
- nogncheck:
Annotating includes for checking.
- output_conversion:
Specifies how to transform a value to output.
- runtime_deps:
How runtime dependency computation works.
- source_expansion:
Map sources to outputs for scripts.
- switches:
Show available command-line switches.