OLD | NEW |
1 # What is GN? | 1 # What is GN? |
2 | 2 |
3 GN is a meta-build system that generates | 3 GN is a meta-build system that generates |
4 [NinjaBuild](https://chromium.googlesource.com/chromium/src/+/master/docs/ninja_
build.md) | 4 [NinjaBuild](https://ninja-build.org) |
5 files so that you can build Chromium with Ninja. | 5 files so that you can build Chromium with Ninja. |
6 | 6 |
7 ## Why did you switch from GYP? | 7 ## Why did you switch from GYP? |
8 | 8 |
9 1. We believe GN files are more readable and more maintainable than GYP files. | 9 1. We believe GN files are more readable and more maintainable than GYP files. |
10 2. GN is fast: | 10 2. GN is fast: |
11 * GN is 20x faster than GYP. | 11 * GN is 20x faster than GYP. |
12 * GN supports automatically re-running itself as needed by Ninja | 12 * GN supports automatically re-running itself as needed by Ninja |
13 as part of the build. This eliminates the need to remember to | 13 as part of the build. This eliminates the need to remember to |
14 re-run GN when you change a build file. | 14 re-run GN when you change a build file. |
15 3. GN gives us better tools for enforcing dependencies (see | 15 3. GN gives us better tools for enforcing dependencies (see |
16 `gn check` and the `visibility`, `public_deps`, and `data_deps` | 16 `gn check` and the `visibility`, `public_deps`, and `data_deps` |
17 options for some examples). | 17 options for some examples). |
18 4. GN gives us tools for querying the build graph; you can ask | 18 4. GN gives us tools for querying the build graph; you can ask |
19 "what does X depend on" and "who depends on Y", for example. | 19 "what does X depend on" and "who depends on Y", for example. |
20 | 20 |
21 ## What's the status of the GYP->GN migration? | 21 ## What's the status of the GYP->GN migration for Chromium? |
22 | 22 |
23 _As of Oct 2016:_ | 23 _As of Oct 2016:_ |
24 | 24 |
25 * All of the Chromium builds have been switched over. | 25 * All of the Chromium builds have been switched over. |
26 * Nearly all of the GYP files have been deleted from the Chromium repos. | 26 * Nearly all of the GYP files have been deleted from the Chromium repos. |
27 * You can no longer build with GYP as a result. | 27 * You can no longer build with GYP as a result. |
28 * There are still some GYP files in place for the "Closure Compilation" | 28 * There are still some GYP files in place for the "Closure Compilation" |
29 builders that need to be converted over. | 29 builders that need to be converted over. |
30 * Some related projects (e.g., V8, Skia) may still support GYP for their | 30 * Some related projects (e.g., V8, Skia) may still support GYP for their |
31 own reasons. | 31 own reasons. |
32 * We're still cleaning up some odds and ends like making gclient not | 32 * We're still cleaning up some odds and ends like making gclient not |
33 still use GYP_DEFINES. | 33 still use GYP_DEFINES. |
34 | 34 |
35 ## I want more info on GN! | 35 ## I want more info on GN! |
36 | 36 |
37 Read these links: | 37 Read these links: |
38 | 38 |
39 * [Quick start](https://chromium.googlesource.com/chromium/src/+/master/tools/
gn/docs/quick_start.md) | 39 * [Quick start](docs/quick_start.md) |
40 * [FAQ](https://chromium.googlesource.com/chromium/src/+/master/tools/gn/docs/
faq.md) | 40 * [FAQ](docs/faq.md) |
41 * [Language and operation details](https://chromium.googlesource.com/chromium/
src/+/master/tools/gn/docs/language.md) | 41 * [Language and operation details](docs/language.md) |
42 * [Reference](https://chromium.googlesource.com/chromium/src/+/master/tools/gn
/docs/reference.md) The built-in `gn help` documentation. | 42 * [Reference](docs/reference.md) The built-in `gn help` documentation. |
43 * [Style guide](https://chromium.googlesource.com/chromium/src/+/master/tools/
gn/docs/style_guide.md) | 43 * [Style guide](docs/style_guide.md) |
44 * [Cross compiling and toolchains](https://chromium.googlesource.com/chromium/
src/+/master/tools/gn/docs/cross_compiles.md) | 44 * [Cross compiling and toolchains](docs/cross_compiles.md) |
45 * [Hacking on GN itself](https://chromium.googlesource.com/chromium/src/+/mast
er/tools/gn/docs/hacking.md) | 45 * [Hacking on GN itself](docs/hacking.md) |
46 * [GNStandalone](https://chromium.googlesource.com/chromium/src/+/master/tools
/gn/docs/standalone.md) Standalone GN projects | 46 * [GNStandalone](docs/standalone.md) Standalone GN projects |
47 * [UpdateGNBinaries](https://chromium.googlesource.com/chromium/src/+/master/t
ools/gn/docs/update_binaries.md) Pushing new binaries | 47 * [UpdateGNBinaries](docs/update_binaries.md) Pushing new binaries |
48 * [Check](https://chromium.googlesource.com/chromium/src/+/master/tools/gn/doc
s/check.md) `gn check` command reference | 48 * [Check](docs/check.md) `gn check` command reference |
OLD | NEW |