commit | d7111cb6877187d1f378bd231e14ffdd5fdd87ae | [log] [tgz] |
---|---|---|
author | Petr Hosek <phosek@google.com> | Mon Jul 16 16:38:53 2018 -0700 |
committer | Commit Bot <commit-bot@chromium.org> | Tue Jul 17 00:08:21 2018 +0000 |
tree | 9e91cd0605b74038c11e660e14d55e6dbc7cc797 | |
parent | a6c2a5d59b80b542d84a48ef29f0c7d445cbc485 [diff] |
Enable identical code folding link option This further reduces the final binary size from 2016216 to 1901528 on Linux. This changes C/C++ semantics and might be incompatible with third-party code that relies on function pointers comparison, but that's not the case for GN. Change-Id: I38e74da3e3e3e2895ef4bda2036e48117cdafe5d Reviewed-on: https://gn-review.googlesource.com/2240 Commit-Queue: Petr Hosek <phosek@google.com> 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.