| Index: tools/gn/docs/cookbook.md
|
| diff --git a/tools/gn/docs/cookbook.md b/tools/gn/docs/cookbook.md
|
| index 9e9d58b735a510cb9830dd7ec0043495ab6b2cf0..7ff015c2d2fc2de1fe40146bf660158d791c26e7 100644
|
| --- a/tools/gn/docs/cookbook.md
|
| +++ b/tools/gn/docs/cookbook.md
|
| @@ -26,8 +26,8 @@ symbols exported from the shared library.
|
| The last issue is a cause of a lot of headaches in the GYP build. If you
|
| annotate a symbol as exported (i.e. `BASE_EXPORT`) then you can't have
|
| it in a file that goes into a static library because the function might
|
| -be [http://blogs.msdn.com/b/oldnewthing/archive/2014/03/21/10509670.aspx
|
| -stripped out] if it's not called from within the static library. This
|
| +be [stripped out](http://blogs.msdn.com/b/oldnewthing/archive/2014/03/21/10509670.aspx)
|
| +if it's not called from within the static library. This
|
| prevents composing components of static libraries and exporting their
|
| symbols. A source set avoids this issue and `EXPORT` has the desired
|
| meaning of "export from the component this gets linked into" with no
|
| @@ -113,9 +113,9 @@ iterate over a set of sources.
|
| ],
|
| }],
|
| ],
|
| -```
|
| +```
|
|
|
| -### GN
|
| +### GN
|
|
|
| ```
|
| sources = [
|
| @@ -167,7 +167,7 @@ places are noted in the table below.
|
| | `arm_neon_optional` (0/1) | `arm_optionally_use_neon` (true/false) | `//build/config/arm.gni` |
|
| | `arm_version` | `arm_version` | `//build/config/arm.gni` |
|
| | `asan` (0/1) | `is_asan` (true/false) | (global) |
|
| -| `branding` ("Chromium"/"Chrome"") | `is_chrome_branded` (true/false) | `//build/config/chrome_build.gni` |
|
| +| `branding` ("Chromium"/"Chrome") | `is_chrome_branded` (true/false) | `//build/config/chrome_build.gni` |
|
| | `build_for_tool=="drmemory"` | `disable_iterator_debugging` (true/false) | (internal to `//build/config/BUILD.gn`) |
|
| | `build_for_tool=="tsan"` | `disable_iterator_debugging` (true/false) | (internal to `//build/config/BUILD.gn`) |
|
| | `buildtype` ("Official"/"Dev") | `is_official_build` (true/false) | `//build/config/chrome_build.gni` |
|
| @@ -195,7 +195,7 @@ places are noted in the table below.
|
| | `tsan` (0/1) | `is_tsan` (true/false) | (global) |
|
| | `windows_sdk_path` | `windows_sdk_path` | (internal to `//build/config/win/BUILD.gn`) |
|
|
|
| -### Feature flags
|
| +### Feature flags
|
|
|
| | *GYP* | *GN* | *GN import* |
|
| |:----------------------------------------|:-----------------------------------------------|:------------------------------|
|
| @@ -260,7 +260,7 @@ places are noted in the table below.
|
| | `win_pdf_metafile_for_printing` (0/1) | `win_pdf_metafile_for_printing` (true/false) | `//build/config/features.gni` |
|
| | `win_use_allocator_shim` (0/1) | | (See "Allocator" below) |
|
|
|
| -### Common target conversion
|
| +### Common target conversion
|
|
|
| Some targets that lots of projects depend on and how the GN ones
|
| correspond to GYP ones. (This is for commonly-depended-on or weird
|
| @@ -329,14 +329,14 @@ the cycle.
|
|
|
| ## Other stuff
|
|
|
| -### Target conditions
|
| +### Target conditions
|
|
|
| `target_conditions` are like normal conditions but expanded in a
|
| different phase of GYP. You can generally just convert the conditions
|
| inside and not worry about the `conditions`/`target_conditions`
|
| difference.
|
|
|
| -### xcode_settings
|
| +### xcode_settings
|
|
|
| Some xcode settings are obvious:
|
|
|
| @@ -360,11 +360,10 @@ These all correspond to various flags that get passed to the compiler or
|
| linker. You can use your favorite search engine to see what it
|
| corresponds to, but many of them are not well documented. You can also
|
| search for the string in
|
| -[https://code.google.com/p/chromium/codesearch#chromium/src/tools/gyp/pylib/gyp/xcode_emulation.py
|
| -tools/gyp/pylib/gyp/xcode_emulation.py]. GYP uses this file to decode
|
| +[tools/gyp/pylib/gyp/xcode_emulation.py](https://code.google.com/p/chromium/codesearch#chromium/src/tools/gyp/pylib/gyp/xcode_emulation.py). GYP uses this file to decode
|
| the Xcode settings into command line flags for the ninja build.
|
|
|
| -### wexit-time destructors
|
| +### wexit-time destructors
|
|
|
| Replace
|
|
|
| @@ -378,7 +377,7 @@ with
|
| configs += [ "//build/config/compiler:wexit_time_destructors" ]
|
| ```
|
|
|
| -### Chromium code
|
| +### Chromium code
|
|
|
| In GYP code is "non-Chromium" by default, and you opt into higher warning levels using:
|
|
|
| @@ -395,7 +394,7 @@ configs -= [ "//build/config/compiler:chromium_code" ]
|
| configs += [ "//build/config/compiler:no_chromium_code" ]
|
| ```
|
|
|
| -### -fvisibility
|
| +### -fvisibility
|
|
|
| All symbols in the build have "hidden" visibility by default (this means
|
| that symbols aren't exported from shared libraries, a concept different
|
| @@ -419,7 +418,7 @@ if (!is_win) {
|
| }
|
| ```
|
|
|
| -### Dependent settings
|
| +### Dependent settings
|
|
|
| In GYP you'll see stuff like this, especially in third-party code.
|
|
|
| @@ -466,7 +465,7 @@ GYP would say `export_dependent_settings` to forward
|
| dependency in the `public_deps` section and this will happen
|
| automatically.
|
|
|
| -### MSVS disabled warnings
|
| +### MSVS disabled warnings
|
|
|
| In GYP you'll see for third-party code:
|
|
|
| @@ -500,7 +499,7 @@ if (is_win) {
|
|
|
| (Use `=` instead of `+=` is you haven't already defined a `cflags` variable.)
|
|
|
| -### Mac frameworks
|
| +### Mac frameworks
|
|
|
| GN knows to convert `.framework` files in the `libs` list to the right
|
| thing on Mac. You don't need to specify the directories either. So
|
| @@ -520,7 +519,7 @@ to this:
|
| libs = [ "Accelerate.framework" ]
|
| ```
|
|
|
| -### hard_dependency
|
| +### hard_dependency
|
|
|
| GYP code sometimes sets
|
|
|
| @@ -531,7 +530,7 @@ GYP code sometimes sets
|
| to indicate that the current target must be build before its dependents.
|
| GN can deduce this internally, so you can ignore this directive.
|
|
|
| -### Allocator
|
| +### Allocator
|
|
|
| GYP has `win_use_allocator_shim` and `use_allocator`. In GN, these are
|
| merged into `use_allocator` which is defined in
|
| @@ -560,7 +559,7 @@ Becomes:
|
| As in GYP, the allocator should only be depended on by executables (and
|
| tests). Libraries should not set the allocator.
|
|
|
| -### optimize: max
|
| +### optimize: max
|
|
|
| In Gyp:
|
|
|
| @@ -583,7 +582,7 @@ affects Posix systems. Some components might additionally specify `-O2`
|
| on Posix further optimize, in which case you can remove the `is_win`
|
| check.
|
|
|
| -### Protobufs
|
| +### Protobufs
|
|
|
| ```
|
| import("//third_party/protobuf/proto_library.gni")
|
| @@ -596,7 +595,7 @@ proto_library("myproto") {
|
| See the `third_party/protobuf/proto_library.gni` file for full
|
| documentation and extra flags.
|
|
|
| -### Java stuff
|
| +### Java stuff
|
|
|
| JNI generator in GYP:
|
|
|
| @@ -627,7 +626,7 @@ if (is_android) {
|
| }
|
| ```
|
|
|
| -### Grit
|
| +### Grit
|
|
|
| ```
|
| import("//tools/grit/grit_rule.gni")
|
| @@ -639,7 +638,7 @@ grit("resources") {
|
|
|
| See `src/build/secondary/tools/grit/grit_rule.gni` for more documentation.
|
|
|
| -### Mojo
|
| +### Mojo
|
|
|
| ```
|
| import("//mojo/public/tools/bindings/mojom.gni")
|
|
|