No description
Find a file
Colin Cross 5f03f11c0a Add presingletons
PreSingletons use the same interface as Singletons, but run after
parsing all the blueprint files but before running any mutators
or GenerateBuildActions.  They can be used to perform global setup,
including generating rules, that may be referenced by later
mutator or generate passes.

Test: m checkbuild
Change-Id: I4b93425a724e739f5b8843262efb8804b3bf3531
2017-11-07 13:31:33 -08:00
bootstrap Support preformatted property documentation 2017-10-17 18:01:53 -07:00
bpfmt Have bpfmt show usage when run without any arguments 2017-10-18 15:11:19 -07:00
bpmodify Remove blueprint/parser.Ident 2016-06-14 15:26:49 -07:00
deptools Make WriteDepFile escape spaces and special characters 2015-04-14 23:34:24 -04:00
gotestmain Fix build on Go 1.9 2017-07-25 10:45:51 -07: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 Merge pull request #169 from danw/buildtags 2017-11-03 14:34:49 -07:00
parser Support parsing int64 in Blueprint file. 2017-11-02 22:10:47 -07:00
pathtools Fix recursive glob on MockFs 2017-10-05 16:06:15 -07:00
proptools Support parsing int64 in Blueprint file. 2017-11-02 22:10:47 -07:00
tests Finish switching blueprint back to the original Blueprints format 2017-10-19 15:33:11 -07:00
.gitignore Import globbing from Soong 2016-11-03 13:54:03 -07:00
.travis.fix-fork.sh Fix running travis on forked repos 2015-07-23 21:07:32 -07:00
.travis.gofmt.sh Enforce gofmt in travis 2016-08-11 10:21:37 -07:00
.travis.install-ninja.sh Support implicit outputs 2016-10-31 17:36:49 -07:00
.travis.yml Merge pull request #166 from colincross/create 2017-09-20 14:09:15 -07:00
blueprint.bash Use microfactory to build the bootstrap minibp 2017-07-24 14:02:51 -07:00
blueprint_impl.bash Export GOROOT for minibp / primary builder 2017-07-25 13:05:55 -07:00
Blueprints Finish switching blueprint back to the original Blueprints format 2017-10-19 15:33:11 -07:00
bootstrap.bash Unify .ninja_log files 2017-07-24 14:02:51 -07:00
context.go Add presingletons 2017-11-07 13:31:33 -08:00
context_test.go Let mutators use ctx.AddNinjaFileDeps 2017-08-01 15:12:12 -07:00
CONTRIBUTING.md Add CONTRIBUTING.md file 2015-03-16 00:12:49 -07:00
doc.go Finish switching blueprint back to the original Blueprints format 2017-10-19 15:33:11 -07:00
glob.go Add globbing to filesystem mocking 2017-02-02 16:48:06 -08:00
LICENSE Add license headers and LICENSE file 2015-01-23 14:23:27 -08:00
live_tracker.go Allow rules to specify order-only dependencies 2017-10-17 13:50:49 -07:00
mangle.go Add license headers and LICENSE file 2015-01-23 14:23:27 -08:00
module_ctx.go Set fields in CreateModule to match current module 2017-10-27 16:32:15 -07:00
ninja_defs.go Allow rules to specify order-only dependencies 2017-10-17 13:50:49 -07:00
ninja_strings.go Escape leading space in ninja strings 2017-05-09 10:14:38 -07:00
ninja_strings_test.go Escape leading space in ninja strings 2017-05-09 10:14:38 -07:00
ninja_writer.go Support implicit outputs 2016-10-31 17:36:49 -07:00
ninja_writer_test.go Support implicit outputs 2016-10-31 17:36:49 -07:00
package_ctx.go Add NewBuiltinRule and NewBuiltinPool 2016-08-29 15:12:33 -07:00
README.md Update link to Ninja 2016-08-18 00:48:20 -04:00
scope.go Allow wrapping of PackageContext 2015-11-30 17:03:34 -08:00
singleton_ctx.go Add globbing to filesystem mocking 2017-02-02 16:48:06 -08:00
splice_modules_test.go Parallelize BottomUpMutators 2016-08-10 16:31:35 -07:00
unpack.go Support parsing int64 in Blueprint file. 2017-11-02 22:10:47 -07:00
unpack_test.go Replace unpack's replace semantics with append 2017-08-01 15:12:12 -07:00
visit_test.go Let mutators use ctx.AddNinjaFileDeps 2017-08-01 15:12:12 -07:00

Blueprint Build System

Build Status

Blueprint is a meta-build system that reads in Blueprints files that describe modules that need to be built, and produces a Ninja manifest describing the commands that need to be run and their dependencies. Where most build systems use built-in rules or a domain-specific language to describe the logic for converting module descriptions to build rules, Blueprint delegates this to per-project build logic written in Go. For large, heterogenous projects this allows the inherent complexity of the build logic to be maintained in a high-level language, while still allowing simple changes to individual modules by modifying easy to understand Blueprints files.