Lines Matching +full:build +full:- +full:go
7 ### Location of build files
9 It usually makes sense to have more build files closer to the code than
17 * Most BUILD files should have a target with the same name as the
19 * Other targets should be in some logical order -- usually
25 include as public deps the non-test-support version of the library
34 Prefer to give such targets short, non-redundant names without worrying
39 output names. Give such targets short non-unique names above, and then
55 Example for the `src/foo/BUILD.gn` file:
59 # Use of this source code is governed by a BSD-style license that can be
93 source or adding a flag for one particular OS) can go beneath the
95 one thing should go at the bottom.
101 GN contains a built-in code formatter which defines the formatting style.
133 * Other deps should always use fully-qualified path names unless
147 Use fully-qualified paths for imports:
164 be brought into the build. Source sets result in every object file being added
186 between source sets and static libraries depending on the build
192 platform-specific errors if they have no sources. If a target has only
205 A component is a Chrome template (rather than a built-in GN concept) that
229 (non-linked) dependency on a shared library.
234 Use loadable modules for things like plugins. In the case of plugin-like
240 ## Build arguments
244 Build arguments should be scoped to a unit of behavior, e.g. enabling a feature.
246 the subset of the build that could make use of it.
248 Chrome has many legacy flags in `//build/config/features.gni`,
249 `//build/config/ui.gni`. These locations are deprecated. Feature flags should
250 go along with the code for the feature. Many browser-level features can go
251 somewhere in `//chrome/` without lower-level code knowing about it. Some
252 UI environment flags can go into `//ui/`, and many flags can also go with
254 components and have build files in chrome or content import it if necessary.
256 The way to think about things in the `//build` directory is that this is
257 DEPSed into various projects like V8 and WebRTC. Build flags specific to
258 code outside of the build directory shouldn't be in the build directory, and
262 `//build/buildflag_header.gni` which allows preprocessor defines to be
281 `gn args out/Debug --list --short`.
283 `use_foo` - indicates dependencies or major codepaths to include (e.g.
286 `enable_foo` - indicates feature or tools to be enabled (e.g.
289 `disable_foo` - _NOT_ recommended, use `enable_foo` instead with swapped default
292 `is_foo` - usually a global state descriptor (e.g. `is_chrome_branded`,
293 `is_desktop_linux`); poor choice for non-globals
295 `foo_use_bar` - prefixes can be used to indicate a limited scope for an argument
300 Prefix top-level local variables within `.gni` files with an underscore. This