commit | 8730b0feb6b991fa47368566501ab9ccfb453c92 | [log] [tgz] |
---|---|---|
author | Tom Anderson <thomasanderson@chromium.org> | Thu May 16 11:00:40 2019 -0700 |
committer | Commit Bot <commit-bot@chromium.org> | Thu May 16 21:36:50 2019 +0000 |
tree | 3c325948931e7bb69b785d4a7353e946013911fd | |
parent | 0d038c2e0a32a528713d3dfaf1f1e0cdfe87fd46 [diff] |
Disallow non-buildable sources in binary targets When adding a file that's not a source, header, or object file to a source_set, loadable_module, shared_library, executable, or static_library, gn will now generate an error like the following: ERROR at //third_party/protobuf/proto_library.gni:369:15: Only source, header, and object files belong in the sources of a source_set. //out/Test/pyproto/google_apis/gcm/protocol/mcs_pb2.py is not one of the valid types. sources = get_target_outputs(":$action_name") ^--------------------------------- See //google_apis/gcm/BUILD.gn:78:1: whence it was called. proto_library("proto") { ^----------------------- See //BUILD.gn:89:7: which caused the file to be included. "//google_apis/gcm:gcm_unit_tests", ^--------------------------------- BUG=77 R=brettw Change-Id: I4ed8da10c48e3e5d74f79e51d8222c998a7b883a Reviewed-on: https://gn-review.googlesource.com/c/gn/+/4980 Commit-Queue: Brett Wilson <brettw@google.com> Reviewed-by: Brett Wilson <brettw@google.com>
GN is a meta-build system that generates build files for Ninja. There is documentation in docs/ and a presentation on it.
You can download the latest version of GN binary for Linux, macOS and Windows.
Alternatively, you can build GN from source:
git clone https://gn.googlesource.com/gn cd gn python build/gen.py ninja -C out # To run tests: out/gn_unittests
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
.
If you find a bug, you can see if it is known or report it in the bug database.
GN uses Gerrit for code review. The short version of how to patch is:
Register at https://gn-review.googlesource.com. ... edit code ... ninja -C out && out/gn_unittests
Then, to upload a change for review:
git commit git cl upload --gerrit
When revising a change, use:
git commit --amend git cl upload --gerrit
which will add the new changes to the existing code review, rather than creating a new one.
We ask that all contributors sign Google's Contributor License Agreement (either individual or corporate as appropriate, select ‘any other Google project’).
You may ask questions and follow along w/ GN‘s development on Chromium’s gn-dev@ Google Group.