mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-12-01 01:36:09 +03:00
1.8 KiB
1.8 KiB
What is GN?
GN is a meta-build system that generates Ninja build files so that you can build Chromium with Ninja.
Why did you switch from GYP?
- We believe GN files are more readable and more maintainable than GYP files.
- GN is fast:
- GN is 20x faster than GYP.
- GN supports automatically re-running itself as needed by Ninja as part of the build. This eliminates the need to remember to re-run GN when you change a build file.
- GN gives us better tools for enforcing dependencies (see
gn check
and thevisibility
,public_deps
, anddata_deps
options for some examples). - GN gives us tools for querying the build graph; you can ask "what does X depend on" and "who depends on Y", for example.
What's the status of the GYP->GN migration for Chromium?
As of Oct 2016:
- All of the Chromium builds have been switched over.
- Nearly all of the GYP files have been deleted from the Chromium repos.
- You can no longer build with GYP as a result.
- There are still some GYP files in place for the "Closure Compilation" builders that need to be converted over.
- Some related projects (e.g., V8, Skia) may still support GYP for their own reasons.
- We're still cleaning up some odds and ends like making gclient not still use GYP_DEFINES.
I want more info on GN!
Read these links:
- Quick start
- FAQ
- Language and operation details
- Reference: The built-in
gn help
documentation. - Style guide
- Cross compiling and toolchains
- Hacking on GN itself
- Standaline GN projects
- Pushing new binaries