No description
77ef79b7c4
This makes it possible to invoke the primary builder more than once in a single Ninja file. This required adding arguments that were hard-wired in the build.ninja rule to extraArgs and adding a "set of primary builder invocations" member to bootstrap.Config . The only command line arguments that remain hard-wired are those which are expected to be relevant to every invocation of the primary builder. As a welcome side effect, I was able to remove a number of random environment variables that were so far special-cased ($SOONG_DELVE, $SOONG_DELVE_PATH and $SOONG_OUTDIR). I was also able to move writing the empty stub ninja glob file to command.go from the bowels of the Blueprint machinery. In theory, $TOP and $BUILDER could be removed, too, but this would require hard-coding the value of $TOP into build.ninja and I don't know what would break if I did that (it's okay to hard-wired $SOONG_DELVE and $SOONG_DELVE_PATH because those are only used for debugging and $SOONG_OUTDIR turned out to be superfluous) Test: Presubmits. Change-Id: Idbfd9976c4b270bc3e5a8926c8c760a8534596cf |
||
---|---|---|
.github/workflows | ||
bootstrap | ||
bpfmt | ||
bpmodify | ||
deptools | ||
gotestmain | ||
gotestrunner | ||
loadplugins | ||
microfactory | ||
parser | ||
pathtools | ||
proptools | ||
tests | ||
.gitignore | ||
.gofmt.sh | ||
blueprint.bash | ||
blueprint_impl.bash | ||
Blueprints | ||
bootstrap.bash | ||
CODEOWNERS | ||
context.go | ||
context_test.go | ||
CONTRIBUTING.md | ||
doc.go | ||
glob.go | ||
glob_test.go | ||
go.mod | ||
LICENSE | ||
live_tracker.go | ||
mangle.go | ||
module_ctx.go | ||
module_ctx_test.go | ||
name_interface.go | ||
ninja_defs.go | ||
ninja_strings.go | ||
ninja_strings_test.go | ||
ninja_writer.go | ||
ninja_writer_test.go | ||
OWNERS | ||
package_ctx.go | ||
PREUPLOAD.cfg | ||
provider.go | ||
provider_test.go | ||
README.md | ||
scope.go | ||
singleton_ctx.go | ||
splice_modules_test.go | ||
visit_test.go |
Blueprint Build System
Blueprint is being archived on 2021 May 3.
On 2021 May 3, we will be archiving the Blueprint project. This means it will not be possible to file new issues or open new pull requests for this GitHub project. As the project is being archived, patches -- including security patches -- will not be applied after May 3. The source tree will remain available, but changes to Blueprint in AOSP will not be merged here and Blueprint's source tree in AOSP will eventually stop being usable outside of Android.
Whereas there are no meta-build systems one can use as a drop-in replacement for Blueprint, there are a number of build systems that can be used:
- Bazel, Google's multi-language build tool to build and test software of any size, quickly and reliably
- Soong, for building the Android operating system itself
- CMake, an open-source, cross-platform family of tools designed to build, test and package software
- Buck, a fast build system that encourages the creation of small, reusable modules over a variety of platforms and languages
- The venerable GNU Make