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

Side by Side Diff: tools/gn/README.md

Issue 1393863003: Update tools/gn/README.md. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: patch for review Created 5 years, 2 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 | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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](/chromium/src/+/master/docs/ninja_build.md)
5 files. It's meant to be faster and simpler than GYP. It outputs only Ninja build 5 files. It's meant to be faster and simpler than GYP. It outputs only Ninja build
6 files. 6 files.
7 7
8 ## Why bother with GN? 8 ## Why bother with GN?
9 9
10 1. We believe GN files are more readable and more maintainable 10 1. We believe GN files are more readable and more maintainable
11 than GYP files. 11 than GYP files.
12 2. GN is fast: 12 2. GN is fast:
13 * GN is 20x faster than GYP (as of mid November, building 80% 13 * GN is 20x faster than GYP.
14 of what GYP builds, in one configuration rather than two, takes 500ms
15 on a z620 running Ubuntu Trusty. GYP takes 20 seconds.
16 We see similar speedups on Mac and Windows).
17 * GN supports automatically re-running itself as needed by Ninja 14 * GN supports automatically re-running itself as needed by Ninja
18 as part of the build. This eliminates the need to remember to 15 as part of the build. This eliminates the need to remember to
19 re-run GN when you change a build file. 16 re-run GN when you change a build file.
20 3. GN gives us better tools for enforcing dependencies (see 17 3. GN gives us better tools for enforcing dependencies (see
21 `gn check` and the `visibility`, `public_deps`, and `data_deps` 18 `gn check` and the `visibility`, `public_deps`, and `data_deps`
22 options for some examples). 19 options for some examples).
23 4. GN gives us tools for querying the build graph; you can ask 20 4. GN gives us tools for querying the build graph; you can ask
24 "what does X depend on" and "who depends on Y", for example. 21 "what does X depend on" and "who depends on Y", for example.
25 22
26 ## What's the status? 23 ## What's the status?
27 24
28 _as of 8 Feb 2015:_ 25 _as of 7 Oct 2015:_
29 26
30 Chrome and most of the major test suites link on Linux and ChromeOS. 27 GN is now the default system for Linux, though GYP still works. It
31 There's probably <1000 objects left to build, in a few test suites and a 28 is mostly complete on Android, ChromeOS, and Windows (apart from NaCl
32 bunch of utillities and helper binaries. We will probably have 29 support on Windows).
33 everything converted in another couple weeks.
34 30
35 Chrome also links on Android and Windows, and bringing up the remaining 31 Mac and iOS are making progress, though we still need better support
36 test suites should be mostly straightforward. There's some work left to 32 for bundles before the major targets like Chrome can link and they get
37 enable NaCl on Windows but it should also be straightforward. 33 to parity w/ the other platforms.
38
39 Mac and iOS have not progressed much as attention has been focused on
40 Linux and Windows; we still need support for bundles and frameworks
41 before it can get to parity w/ the other platforms.
42 34
43 ## When are you going to be done? 35 ## When are you going to be done?
44 36
45 _as of 8 Feb 2015:_ 37 _as of 7 Oct 2015:_
46 38
47 We're currently shooting for having the main developer configurations 39 We're currently shooting for having Android, ChromeOS, and Windows
48 working and usable by the end of March 2015. There will probably be a 40 converted over by the end of 2015, with Mac and iOS following in Q1
49 fair amount of verification of flags, bug fixes, etc over the next 41 of 2016.
50 couple months, but hopefully we will be flipping configurations from GYP
51 to GN throughout Q2, targeting having everything done by the end of Q2.
52 42
53 ## What does "done" mean? 43 ## What does "done" mean?
54 44
55 Ideally we're done when all of the GYP files have been deleted from 45 Ideally we're done when all of the GYP files have been deleted from
56 Chromium and no one misses them. 46 Chromium and no one misses them.
57 47
58 We will be "mostly" done when the following are true: 48 We will be "mostly" done when the following are true:
59 49
60 * All of the bots maintained by the Chrome infra team for Chromium and 50 * All of the bots maintained by the Chrome infra team for Chromium and
61 downstream of Chromium have been switched to GN. (Upstream projects 51 downstream of Chromium have been switched to GN. (Upstream projects
(...skipping 16 matching lines...) Expand all
78 68
79 We do not currently plan to support full native XCode or Visual Studio 69 We do not currently plan to support full native XCode or Visual Studio
80 generation from GN. It is theoretically possible to support such things, 70 generation from GN. It is theoretically possible to support such things,
81 so we would at least look at patches adding the functionality. 71 so we would at least look at patches adding the functionality.
82 72
83 ## How can I help? 73 ## How can I help?
84 74
85 Check to see if your targets build under GN yet. If they don't, 75 Check to see if your targets build under GN yet. If they don't,
86 volunteer to help convert them! 76 volunteer to help convert them!
87 77
88 _17 Nov 2014. We are updating the stuff we use to track progress. Watch 78 Or, look at [the list of open bugs](https://code.google.com/p/chromium/issues/li st?can=2&q=label:Proj-GN-Migration%20-type:Project&sort=pri&colspec=ID%20Pri%20S ummary%20Type%20OS%20Owner%20Status%20Modified%20Blocking) related to the migrat ion and see if there's anything that catches your fancy.
89 this space and chromium-dev@ for more info!_.
90 79
91 ## I want more info on GN! 80 ## I want more info on GN!
92 81
93 Read these links: 82 Read these links:
94 83
95 * [Quick start](docs/quick_start.md) 84 * [Quick start](/chromium/src/+/master/tools/gn/docs/quick_start.md)
96 * [FAQ](docs/faq.md) 85 * [FAQ](/chromium/src/+/master/tools/gn/docs/faq.md)
97 * [GYP conversion cookbook](docs/cookbook.md) 86 * [GYP conversion cookbook](/chromium/src/+/master/tools/gn/docs/cookbook.md)
98 * [Language and operation details](docs/language.md) 87 * [Language and operation details](/chromium/src/+/master/tools/gn/docs/langua ge.md)
99 * [Reference](docs/reference.md) The built-in `gn help` documentation. 88 * [Reference](/chromium/src/+/master/tools/gn/docs/reference.md) The built-in `gn help` documentation.
100 * [Style guide](docs/style_guide.md) 89 * [Style guide](/chromium/src/+/master/tools/gn/docs/style_guide.md)
101 * [Cross compiling and toolchains](docs/cross_compiles.md) 90 * [Cross compiling and toolchains](/chromium/src/+/master/tools/gn/docs/cross_ compiles.md)
102 * [Hacking on GN itself](docs/hacking.md) 91 * [Hacking on GN itself](/chromium/src/+/master/tools/gn/docs/hacking.md)
103 * [GNStandalone](docs/standalone.md) Standalone GN projects 92 * [GNStandalone](/chromium/src/+/master/tools/gn/docs/standalone.md) Standalon e GN projects
104 * [UpdateGNBinaries](docs/update_binaries.md) Pushing new binaries 93 * [UpdateGNBinaries](/chromium/src/+/master/tools/gn/docs/update_binaries.md) Pushing new binaries
105 * [Check](docs/check.md) `gn check` command reference 94 * [Check](/chromium/src/+/master/tools/gn/docs/check.md) `gn check` command re ference
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698