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