Lines Matching +full:windows +full:- +full:build +full:- +full:rules
3 GN is a meta-build system that generates build files for
4 [Ninja](https://ninja-build.org).
15 * The [mailing list](https://groups.google.com/a/chromium.org/forum/#!forum/gn-dev).
20 GN is currently used as the build system for Chromium, Fuchsia, and related
24 many thousands of build files and tens of thousands of source files.
26 * It has a readable, clean syntax. Once a build is set-up, it is generally
27 easy for people with no backround in GN to make basic edits to the build.
29 * It is designed for multi-platform projects. It can cleanly express many
30 complicated build variants across different platforms. A single build
40 allow developers to ensure the build evolves as desired (for example, `gn
43 * It has comprehensive build-in help available from the command-line.
50 have much knowledge about the build) down an easy-to-understand, well-lit
51 path. This isn't necessarily the correct trade-off for smaller projects.
53 * The minimal build configuration is relatively heavyweight. There are several
59 project with relatively uniform settings and rules. Projects like Chromium
61 projects must agree on some conventions in the build files to allow this to
77 GN can generate Ninja build files for C, C++, Rust, Objective C, and Swift
79 general "action" rules which are executed by Python or another scripting
81 clean, generally GN is only used when the bulk of the build is in one of the
82 main built-in languages.
87 [Linux](https://chrome-infra-packages.appspot.com/dl/gn/gn/linux-amd64/+/latest),
88 [macOS](https://chrome-infra-packages.appspot.com/dl/gn/gn/mac-amd64/+/latest) and
89 [Windows](https://chrome-infra-packages.appspot.com/dl/gn/gn/windows-amd64/+/latest)
90 from Google's build infrastructure (see "Versioning and distribution" below for
93 Alternatively, you can build GN from source with a C++17 compiler:
97 python build/gen.py # --allow-warning if you want to build with warnings.
98 ninja -C out
102 On Windows, it is expected that `cl.exe`, `link.exe`, and `lib.exe` can be found
111 installed, as described at that URL. When building with `build/gen.py`, use the option
112 `--zoslib-dir` to specify the path to [ZOSLIB](https://github.com/ibmruntimes/zoslib):
115 python build/gen.py --zoslib-dir /path/to/zoslib
117 By default, if you don't specify `--zoslib-dir`, `gn/build/gen.py` expects to find
125 To build and run the simple example with the default gcc compiler:
128 ../../out/gn gen -C out
129 ninja -C out
134 * [BUILDCONFIG.gn](https://cs.chromium.org/chromium/src/build/config/BUILDCONFIG.gn)
135 * [Toolchain setup](https://cs.chromium.org/chromium/src/build/toolchain/)
136 * [Compiler setup](https://cs.chromium.org/chromium/src/build/config/compiler/BUILD.gn)
140 …* [BUILDCONFIG.gn](https://fuchsia.googlesource.com/fuchsia/+/refs/heads/main/build/config/BUILDCO…
141 * [Toolchain setup](https://fuchsia.googlesource.com/fuchsia/+/refs/heads/main/build/toolchain/)
142 …* [Compiler setup](https://fuchsia.googlesource.com/fuchsia/+/refs/heads/main/build/config/BUILD.g…
152 [gn-review.googlesource.com](https://gn-review.googlesource.com/). The short
155 Register at https://gn-review.googlesource.com.
158 ninja -C out && out/gn_unittests
166 change-ID. Follow the directions in the error message to install the change-ID
167 hook and run `git commit --amend` to apply the hook to the current commit.
171 git commit --amend
185 [gn-dev@](https://groups.google.com/a/chromium.org/forum/#!forum/gn-dev)
190 Most open-source projects are designed to use the developer's computer's current
191 toolchain such as compiler, linker, and build tool. But the large
204 tooling to download binaries for a specific hash from [Google's build
205 infrastructure](https://chrome-infra-packages.appspot.com/p/gn/gn) or compile
208 GN does not guarantee the backwards-compatibility of new versions and has no
212 In practice, however, GN is very backwards-compatible. The core functionality
214 make non-backwards-compatible changes very difficult, even if they were
218 guarantees about backwards-compatibility, but nothing has yet been implemented.