1 # Build overrides in GN
3 This directory is used to allow different products to customize settings
4 for repos that are DEPS'ed in or shared.
6 For example: V8 could be built on its own (in a "standalone" configuration),
7 and it could be built as part of Chromium. V8 might define a top-level
8 target, //v8:d8 (a simple executable), that should only be built in the
9 standalone configuration. To figure out whether or not it should be
10 in a standalone configuration, v8 can create a file, build_overrides/v8.gni,
11 that contains a variable, `build_standalone_d8 = true`.
12 and import it (as import("//build_overrides/v8.gni") from its top-level
15 Chromium, on the other hand, might not need to build d8, and so it would
16 create its own build_overrides/v8.gni file, and in it set
17 `build_standalone_d8 = false`.
19 The two files should define the same set of variables, but the values can
20 vary as appropriate to the needs of the two different builds.
22 The build.gni file provides a way for projects to override defaults for
23 variables used in //build itself (which we want to be shareable between
26 TODO(crbug.com/588513): Ideally //build_overrides and, in particular,
27 //build_overrides/build.gni should go away completely in favor of some
28 mechanism that can re-use other required files like //.gn, so that we don't
29 have to keep requiring projects to create a bunch of different files to use GN.