Lines Matching +full:ninja +full:- +full:build
2 GN and Ninja are documented here:
4 * Ninja: https://ninja-build.org/manual.html
13 * Non-system Python imports are inputs! For scripts that import such modules,
17 [`action_with_pydeps`]: https://cs.chromium.org/chromium/src/build/config/python.gni?rcl=320ee4295e…
20 understand ninja's "restat" directive, which is used for all GN `action()`s.
22 From https://ninja-build.org/manual.html:
24 > if present, causes Ninja to re-stat the command’s outputs after execution of
27 > output’s reverse dependencies to be removed from the list of pending build
31 when rebuilt, then ninja will not bother to rebuild your target.
36 won't exist for the initial build.
41 * Stale paths in depfiles can cause ninja to complain of circular
45 [`action_helpers.write_depfile()`]: https://source.chromium.org/chromium/chromium/src/+/main:build/…
48 "gn analyze" is used by bots to run only affected tests and build only affected
53 "files": ["//BUILD.gn"],
69 to list them, and then have your action re-compute them and assert that
77 …[`compute_inputs_for_analyze`](https://cs.chromium.org/chromium/src/build/config/compute_inputs_fo…
93 * Inputs and outputs are a node's public API on the build graph. Not listing
94 "implementation detail"-style outputs prevents other targets from depending on
96 * Not listing them also helps to minimize the size of the build graph (although
128 _output_path = "$root_build_dir/size-info/${invoker.name}.apk.jar.info"
136 and corrupt contents. Ninja looks only at timestamps.
138 * Rationale: `restat=1` is a ninja feature enabled for all actions that
139 short-circuits a build when output timestamps do not change. This feature is
140 the reason that the total number of build steps sometimes decreases when
144 [`action_helpers.atomic_output()`]: https://source.chromium.org/chromium/chromium/src/+/main:build/…
146 Actions should be deterministic in order to avoid hard-to-reproduce bugs.
147 Given identical inputs, they should produce byte-for-byte identical outputs.
154 [`zip_helpers.py`]: https://source.chromium.org/chromium/chromium/src/+/main:build/zip_helpers.py
164 * Fewer targets makes for a simpler build graph.
165 * GN logic and build logic winds up much simpler.
211 top-level targets.
218 to the final target ensures that the invoker-provided visibility does not
303 To make this easier, `//build/config/BUILDCONFIG.gn` defines:
343 ## Useful Ninja Flags
344 Useful ninja flags when developing build rules:
345 * `ninja -v` - log the full command-line of every target.
346 * `ninja -v -n` - log the full command-line of every target without having
347 to wait for a build.
348 * `ninja -w dupbuild=err` - fail if multiple targets have the same output.
349 * `ninja -d keeprsp` - prevent ninja from deleting response files.
350 * `ninja -n -d explain` - print why ninja thinks a target is dirty.
351 * `ninja -j1` - execute only one command at a time.