| Index: tools/gn/docs/reference.md
|
| diff --git a/tools/gn/docs/reference.md b/tools/gn/docs/reference.md
|
| index c29b24fe6f764be9e011bb83c3924a922c1aa226..ed26cfae70855aaa430f34a4174bab08d7dee90b 100644
|
| --- a/tools/gn/docs/reference.md
|
| +++ b/tools/gn/docs/reference.md
|
| @@ -864,8 +864,8 @@
|
| ```
|
| Finds paths of dependencies between two targets. Each unique path
|
| will be printed in one group, and groups will be separate by newlines.
|
| - The two targets can appear in either order: paths will be found going
|
| - in either direction.
|
| + The two targets can appear in either order (paths will be found going
|
| + in either direction).
|
|
|
| By default, a single path will be printed. If there is a path with
|
| only public dependencies, the shortest public path will be printed.
|
| @@ -876,13 +876,23 @@
|
|
|
| ```
|
|
|
| +### **Interesting paths**
|
| +
|
| +```
|
| + In a large project, there can be 100's of millions of unique paths
|
| + between a very high level and a common low-level target. To make the
|
| + output more useful (and terminate in a reasonable time), GN will not
|
| + revisit sub-paths previously known to lead to the target.
|
| +
|
| +```
|
| +
|
| ### **Options**
|
|
|
| ```
|
| --all
|
| - Prints all paths found rather than just the first one. Public paths
|
| - will be printed first in order of increasing length, followed by
|
| - non-public paths in order of increasing length.
|
| + Prints all "interesting" paths found rather than just the first
|
| + one. Public paths will be printed first in order of increasing
|
| + length, followed by non-public paths in order of increasing length.
|
|
|
| --public
|
| Considers only public paths. Can't be used with --with-data.
|
| @@ -1426,12 +1436,32 @@
|
|
|
| ```
|
|
|
| +### **Code signing**
|
| +
|
| +```
|
| + Some bundle needs to be code signed as part of the build (on iOS all
|
| + application needs to be code signed to run on a device). The code
|
| + signature can be configured via the code_signing_script variable.
|
| +
|
| + If set, code_signing_script is the path of a script that invoked after
|
| + all files have been moved into the bundle. The script must not change
|
| + any file in the bundle, but may add new files.
|
| +
|
| + If code_signing_script is defined, then code_signing_outputs must also
|
| + be defined and non-empty to inform when the script needs to be re-run.
|
| + The code_signing_args will be passed as is to the script (so path have
|
| + to be rebased) and additional inputs may be listed with the variable
|
| + code_signing_sources.
|
| +
|
| +```
|
| +
|
| ### **Variables**
|
|
|
| ```
|
| bundle_root_dir*, bundle_resources_dir*, bundle_executable_dir*,
|
| bundle_plugins_dir*, deps, data_deps, public_deps, visibility,
|
| - product_type
|
| + product_type, code_signing_args, code_signing_script,
|
| + code_signing_sources, code_signing_outputs
|
| * = required
|
|
|
| ```
|
| @@ -1467,25 +1497,26 @@
|
|
|
| executable("${app_name}_generate_executable") {
|
| forward_variables_from(invoker, "*", [
|
| - "output_name",
|
| - "visibility",
|
| - ])
|
| + "output_name",
|
| + "visibility",
|
| + ])
|
| output_name =
|
| rebase_path("$gen_path/$app_name", root_build_dir)
|
| }
|
|
|
| - bundle_data("${app_name}_bundle_executable") {
|
| - deps = [ ":${app_name}_generate_executable" ]
|
| - sources = [ "$gen_path/$app_name" ]
|
| - outputs = [ "{{bundle_executable_dir}}/$app_name" ]
|
| + code_signing =
|
| + defined(invoker.code_signing) && invoker.code_signing
|
| +
|
| + if (is_ios && !code_signing) {
|
| + bundle_data("${app_name}_bundle_executable") {
|
| + deps = [ ":${app_name}_generate_executable" ]
|
| + sources = [ "$gen_path/$app_name" ]
|
| + outputs = [ "{{bundle_executable_dir}}/$app_name" ]
|
| + }
|
| }
|
|
|
| create_bundle("${app_name}.app") {
|
| product_type = "com.apple.product-type.application"
|
| - deps = [
|
| - ":${app_name}_bundle_executable",
|
| - ":${app_name}_bundle_info_plist",
|
| - ]
|
| if (is_ios) {
|
| bundle_root_dir = "${root_build_dir}/$target_name"
|
| bundle_resources_dir = bundle_root_dir
|
| @@ -1497,11 +1528,33 @@
|
| bundle_executable_dir = bundle_root_dir + "/MacOS"
|
| bundle_plugins_dir = bundle_root_dir + "/Plugins"
|
| }
|
| - }
|
| -
|
| - group(target_name) {
|
| - forward_variables_from(invoker, ["visibility"])
|
| - deps = [ ":${app_name}.app" ]
|
| + deps = [ ":${app_name}_bundle_info_plist" ]
|
| + if (is_ios && code_signing) {
|
| + deps += [ ":${app_name}_generate_executable" ]
|
| + code_signing_script = "//build/config/ios/codesign.py"
|
| + code_signing_sources = [
|
| + invoker.entitlements_path,
|
| + "$target_gen_dir/$app_name",
|
| + ]
|
| + code_signing_outputs = [
|
| + "$bundle_root_dir/$app_name",
|
| + "$bundle_root_dir/_CodeSignature/CodeResources",
|
| + "$bundle_root_dir/embedded.mobileprovision",
|
| + "$target_gen_dir/$app_name.xcent",
|
| + ]
|
| + code_signing_args = [
|
| + "-i=" + ios_code_signing_identity,
|
| + "-b=" + rebase_path(
|
| + "$target_gen_dir/$app_name", root_build_dir),
|
| + "-e=" + rebase_path(
|
| + invoker.entitlements_path, root_build_dir),
|
| + "-e=" + rebase_path(
|
| + "$target_gen_dir/$app_name.xcent", root_build_dir),
|
| + rebase_path(bundle_root_dir, root_build_dir),
|
| + ]
|
| + } else {
|
| + deps += [ ":${app_name}_bundle_executable" ]
|
| + }
|
| }
|
| }
|
| }
|
| @@ -3611,13 +3664,13 @@
|
| ```
|
| This value should be used to indicate the desired architecture for
|
| the primary objects of the build. It will match the cpu architecture
|
| - of the default toolchain.
|
| + of the default toolchain, but not necessarily the current toolchain.
|
|
|
| In many cases, this is the same as "host_cpu", but in the case
|
| - of cross-compiles, this can be set to something different. This
|
| - value is different from "current_cpu" in that it can be referenced
|
| - from inside any toolchain. This value can also be ignored if it is
|
| - not needed or meaningful for a project.
|
| + of cross-compiles, this can be set to something different. This
|
| + value is different from "current_cpu" in that it does not change
|
| + based on the current toolchain. When writing rules, "current_cpu"
|
| + should be used rather than "target_cpu" most of the time.
|
|
|
| This value is not used internally by GN for any purpose, so it
|
| may be set to whatever value is needed for the build.
|
| @@ -4262,6 +4315,48 @@
|
|
|
|
|
| ```
|
| +## **code_signing_args**: [string list] Arguments passed to code signing script.
|
| +
|
| +```
|
| + For create_bundle targets, code_signing_args is the list of arguments
|
| + to pass to the code signing script. Typically you would use source
|
| + expansion (see "gn help source_expansion") to insert the source file
|
| + names.
|
| +
|
| + See also "gn help create_bundle".
|
| +
|
| +
|
| +```
|
| +## **code_signing_outputs**: [file list] Output files for code signing step.
|
| +
|
| +```
|
| + Outputs from the code signing step of a create_bundle target. Must
|
| + refer to files in the build directory.
|
| +
|
| + See also "gn help create_bundle".
|
| +
|
| +
|
| +```
|
| +## **code_signing_script**: [file name] Script for code signing.
|
| +```
|
| + An absolute or buildfile-relative file name of a Python script to run
|
| + for a create_bundle target to perform code signing step.
|
| +
|
| + See also "gn help create_bundle".
|
| +
|
| +
|
| +```
|
| +## **code_signing_sources**: [file list] Sources for code signing step.
|
| +
|
| +```
|
| + A list of files used as input for code signing script step of a
|
| + create_bundle target. Non-absolute paths will be resolved relative to
|
| + the current build file.
|
| +
|
| + See also "gn help create_bundle".
|
| +
|
| +
|
| +```
|
| ## **complete_static_lib**: [boolean] Links all deps into a static library.
|
|
|
| ```
|
| @@ -5949,8 +6044,8 @@
|
| When a tool produces more than one output, only the first output
|
| is considered. For example, a shared library target may produce a
|
| .dll and a .lib file on Windows. Only the .dll file will be considered
|
| - a runtime dependency. This applies only to linker tools, scripts and
|
| - copy steps with multiple outputs will also get all outputs listed.
|
| + a runtime dependency. This applies only to linker tools. Scripts and
|
| + copy steps with multiple outputs will get all outputs listed.
|
|
|
|
|
| ```
|
|
|