No description
Find a file
Lukacs T. Berki 77ef79b7c4 Move primary builder command line computation.
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
2021-04-12 14:30:47 +02:00
.github/workflows Fix github builds for deprecated set-env and add-path commands (#333) 2020-11-23 16:52:58 -08:00
bootstrap Move primary builder command line computation. 2021-04-12 14:30:47 +02:00
bpfmt Make bpfmt use exit codes even when reading from stdin. 2021-02-17 20:24:50 -08:00
bpmodify bpmodify: support numerical sort (#332) 2020-12-14 11:30:48 -08:00
deptools Make WriteDepFile escape spaces and special characters 2015-04-14 23:34:24 -04:00
gotestmain Support examples as tests 2019-02-15 15:13:37 -08:00
gotestrunner gotestrunner: Make GOROOT absolute before chdir 2017-01-18 14:42:09 -08:00
loadplugins Implement plugins for bootstrap go modules 2015-09-14 15:35:12 -07:00
microfactory Make debugging easier: 2021-03-03 09:15:04 +01:00
parser Fix numericStringLess and add tests 2021-03-08 17:59:55 -08:00
pathtools Remove unused GlobPatternList function 2021-04-08 11:03:17 -07:00
proptools Always shard structs if they would exceed maxNameSize even if unfiltered 2021-03-26 09:59:19 +00:00
tests Make test_tree_tests.sh slightly easier to read 2017-10-30 15:00:19 -07:00
.gitignore Import globbing from Soong 2016-11-03 13:54:03 -07:00
.gofmt.sh Use github actions instead of travis 2020-06-15 10:32:10 -07:00
blueprint.bash Use microfactory to build the bootstrap minibp 2017-07-24 14:02:51 -07:00
blueprint_impl.bash Run globs during earlier bootstrap phases 2018-07-06 10:39:38 -07:00
Blueprints Fix numericStringLess and add tests 2021-03-08 17:59:55 -08:00
bootstrap.bash Add flag to use validations for tests 2020-07-09 14:28:20 -07:00
CODEOWNERS Add CODEOWNERS: @google/blueprint 2020-10-07 11:57:54 +08:00
context.go Add dumping the module graph in JSON format. 2021-04-01 18:38:31 +02:00
context_test.go Fix detecting cycles in parallelVisit 2021-02-08 15:56:43 -08:00
CONTRIBUTING.md Add CONTRIBUTING.md file 2015-03-16 00:12:49 -07:00
doc.go Fix Ninja build system site link 2019-03-23 16:31:07 +02:00
glob.go Return a copy of glob lists 2021-01-21 13:47:59 -08:00
glob_test.go Fix glob cache conflict when excludes=nil and excludes=[]string{} 2018-02-23 14:03:56 -08:00
go.mod Add proptools.Int and proptools.IntDefault 2019-09-25 14:52:54 -07:00
LICENSE Add license headers and LICENSE file 2015-01-23 14:23:27 -08:00
live_tracker.go Add Validations support to Blueprint 2020-07-09 14:28:20 -07:00
mangle.go Add license headers and LICENSE file 2015-01-23 14:23:27 -08:00
module_ctx.go Actually pause mutators when adding dependencies (#335) 2020-12-14 11:23:23 -08:00
module_ctx_test.go Improve formatting of some error messages. (#327) 2020-11-16 12:15:36 -08:00
name_interface.go Maintain ordering between variants and aliases 2020-09-09 18:29:15 -07:00
ninja_defs.go Write build definitions directly to output writer 2021-01-21 22:02:30 -08:00
ninja_strings.go Write build definitions directly to output writer 2021-01-21 22:02:30 -08:00
ninja_strings_test.go Make ninjaString an interface 2020-01-29 16:23:40 -08:00
ninja_writer.go Write build definitions directly to output writer 2021-01-21 22:02:30 -08:00
ninja_writer_test.go Write build definitions directly to output writer 2021-01-21 22:02:30 -08:00
OWNERS Refactor OWNERS in platform/build/blueprint 2020-10-08 16:23:53 -07:00
package_ctx.go Memoize full names of variables, pools and rules 2021-01-21 22:02:30 -08:00
PREUPLOAD.cfg Add preupload hooks to build/blueprint 2021-02-23 10:29:46 -08:00
provider.go Add Providers to Blueprint 2020-09-22 18:20:18 -07:00
provider_test.go Add Providers to Blueprint 2020-09-22 18:20:18 -07:00
README.md Replace README.md with an archival announcement. 2021-03-29 18:13:57 +02:00
scope.go Memoize full names of variables, pools and rules 2021-01-21 22:02:30 -08:00
singleton_ctx.go Add Providers to Blueprint 2020-09-22 18:20:18 -07:00
splice_modules_test.go Maintain ordering between variants and aliases 2020-09-09 18:29:15 -07:00
visit_test.go Maintain ordering between variants and aliases 2020-09-09 18:29:15 -07:00

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