Lines Matching full:build

1 # Android Build System Concepts
4 build system components and concepts of the Android build system and Bazel,
10 Android Platform build system, and how each component maps to a concept in
13 |Android build system component|Description|Mapping to Bazel concepts|
15build logic in `.mk` scripts. Declares buildable units in `Android.mk`. Generates Ninja file direc…
16 |Blueprint|Build definition syntax. Build syntax parser. Internal data structures like Modules/Vari…
17build logic in Go. Declares build units in `Android.bp`, parsed by Blueprint. Uses Blueprint to ge…
20 …t + Kati + Soong + Ninja + atest|The entire build pipeline for Android.|Conceptually similar to `b…
22 …er in use. Entire build system, replaced by the tools above.|Loading, analysis, execution phases. …
23 |`Android.bp`|Build definition file for Soong.|`BUILD.bazel` or `BUILD`.|
24 |`Android.mk`|Build definition file for Kati.|`BUILD.bazel` or `BUILD`.|
30 * Kati component to generate build actions in Ninja files (main.mk, Android.mk files)
31 * **“Kati-build” for the purpose of this document**
36 * **soong\_build** (and **Blueprint**) component to generate build actions (Android.bp, Blueprints …
37 * **Ninja** component to execute actions from Kati-build, Kati-package and soong\_build
38 * **Bazel** as the next generation of the entire build system, starting as a Ninja executor drop-in…
41 The current build system architecture primarily uses **files** as the medium
44 …er](https://cs.android.com/android/platform/superproject/+/master:build/soong/ui/build/paths/logs.…
45 and a fifo between Ninja and soong_ui for the Protobuf stream for build
50 The build system components run in the following order, orchestrated by soong\_ui:
52 1. soong\_ui bootstraps itself with microfactory (`go build` replacement) and launches.
56 …nt](https://cs.android.com/android/platform/superproject/+/master:build/soong/ui/build/dumpvars.go…
57 1. soong\_ui orchestrates 3 Blueprint/Soong phases to generate the main out/soong/build.ninja file:
59 1. Minibootstrap phase uses Blueprint/Microfactory to build itself
62 1. Bootstrap phase runs Ninja on a build.ninja file that runs minibp to
65 1. Primary phase runs Ninja on a build.ninja file that runs soong_build
66 to generate the final out/soong/build.ninja file.
68 out/soong/build.ninja, which can be skipped with the `--skip-soong-tests`
71 …nt](https://cs.android.com/android/platform/superproject/+/master:build/soong/ui/build/kati.go;l=3…
72 1. soong\_ui runs Kati-build to generate a Ninja file, with
73 …t.](https://cs.android.com/android/platform/superproject/+/master:build/soong/ui/build/kati.go;l=2…
75 …mk](https://cs.android.com/android/platform/superproject/+/master:build/soong/ui/build/kati.go;l=3…
78 1. soong\_ui runs either Ninja or Bazel to execute the build, with the
82 Kati-build and Kati-package, used for Soong-only builds in NDK and some
87 soong\_ui is primarily responsible for orchestrating the build, cleaning the
88 build environment, and running auxiliary tools. These tools (minibp,
94 tools. For example, it generates Android.mk.list for Kati-build,
109 others, and executes either Ninja or Bazel to complete the build.
116 **[--dumpvars-mode](https://cs.android.com/android/platform/superproject/+/master:build/soong/cmd/s…
118 with build/make/core/config.mk as the entry point. During this phase,
120 soong\_config.mk](https://cs.android.com/android/platform/superproject/+/master:build/make/core/soo…
122 file](https://cs.android.com/android/platform/superproject/+/master:build/make/core/soong_config.mk…
128 [dexpreopt](https://cs.android.com/android/platform/superproject/+/master:build/soong/java/dexpreop…
130 generated](https://cs.android.com/android/platform/superproject/+/master:build/make/core/dex_preopt…
132 soong\_build](https://cs.android.com/android/platform/superproject/+/master:build/soong/dexpreopt/c…
142 of mutators, and generate out/soong/build.ninja file.
144 soong\_build communicates with Kati-build by generating Make Vars and running
150 * make\_vars-<product>.mk contains Make variables for Kati-build, exported
154 * late-<product>.mk contains Make variables that are not read while Kati-build
163 ## Kati-build / Kati-package
165 Kati-build’s primary role is to evaluate all Android.mk files with
166 build/make/core/main.mk as entry point, and generate
167 out/build-<product>.ninja. It also generates cleanspec.ninja for the
170 Kati-build’s primary role is to evaluate all packaging .mk files with
171 build/make/packaging/main.mk as entry point, including
172 build/make/packaging/distdir.mk for dist-for-goals calls, and generate
175 Kati-build/Kati-package’s stdout/stderr is monitored by soong\_ui’s
178 As Kati-build/Kati-package generates Ninja files, they also generate
185 As Ninja executes files from Kati-build, Kati-package, soong\_build and other
188 interface for Ninja progress is consistent with the rest of the build.
192 As more Soong modules are converted to BUILD files, soong\_build serializes
193 information about converted modules to BUILD/bzl files on disk. soong\_build