| # GN | |
| GN is a meta-build system that generates build files for | |
| [Ninja](https://ninja-build.org). | |
| ## Getting started | |
| git clone https://gn.googlesource.com/gn | |
| cd gn | |
| python build/gen.py | |
| ninja -C out | |
| On Windows, it is expected that `cl.exe`, `link.exe`, and `lib.exe` can be found | |
| in `PATH`, so you'll want to run from a Visual Studio command prompt, or | |
| similar. | |
| On Linux and Mac, the default compiler is `clang++`, a recent version is | |
| expected to be found in `PATH`. This can be overridden by setting `CC`, `CXX`, | |
| and `AR`. | |
| ## Sending patches | |
| GN uses [Gerrit](https://www.gerritcodereview.com/) for code review. The short | |
| version of how to patch is: | |
| ... edit code ... | |
| ninja -C out && out/gn_unittests | |
| Then, to upload a change for review: | |
| git commit | |
| git push origin HEAD:refs/for/master # This uploads for review. | |
| When revising a change, use: | |
| git commit --amend | |
| git push origin HEAD:refs/for/master | |
| which will add the new changes to the existing code review, rather than creating | |
| a new one. | |
| TODO: AUTHORS, CLA, etc. |