commit | 8ce4e49a990c0579ca214ab7967139b2ea792133 | [log] [tgz] |
---|---|---|
author | Julie Hockett <juliehockett@google.com> | Mon Jul 02 17:31:48 2018 -0700 |
committer | Commit Bot <commit-bot@chromium.org> | Tue Jul 10 21:24:32 2018 +0000 |
tree | f1e1cfbbc2a3f121e6163c8d70a4f81a0b1d1087 | |
parent | f0b4405f4e0809bcc4bb90644eccae4c806b7cd6 [diff] |
[gn] Add --export-compile-commands switch to gen Adding a command line switch to generate a compilation database (compile_commands.json) in the out/ directory. Compilation databases are used by clang-based tools (e.g. clang-tidy, clangd, clang-rename). CMake already does this with the -DEXPORT_COMPILE_COMMANDS option, which regenerates the compdb whenever the ninja files are regenerated. Use: gn gen out/<builddir> --export-compile-commands Setting this switch adds ~900ms to the `gn gen` command when run on Chromium (wihtout --export-compile-commands == 2.7sec, with --export-compile-commands == 3.6sec). Change-Id: Ia3738e340b9de60da62557fb431a68a0618957fb Reviewed-on: https://gn-review.googlesource.com/2040 Commit-Queue: Brett Wilson <brettw@chromium.org> Reviewed-by: Brett Wilson <brettw@chromium.org>
GN is a meta-build system that generates build files for Ninja.
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
.
GN uses Gerrit 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.