No description
Find a file
Dan Willemsen cd4e0cebc9 Unify .ninja_log files
Having separate .ninja_log files doesn't work very well after
04d886b110
since the last successful timestamp is not recorded in the ninja log.
This was triggering the primary builder to be run twice on every build
since it was always considered out of date in the primary, then main
stages.

The two bootstrap stages already were unified when minibootstrap was
simplified, but this combines the main stage as well. This means that
we'll save some time running globs that are shared between minibp and
the primary builder as well (subdirs globs).

The cleanup code needed to be refactored, since the ninja_log will have
entries from the main stage as well. So instead of looking at everything
in the ninja log, take a string prefix to limit what we may clean.

Change-Id: I8d43168643aa8a0c6c3e48c6101eaa45d174bbe5
2017-07-24 14:02:51 -07:00
bootstrap Unify .ninja_log files 2017-07-24 14:02:51 -07:00
bpfmt Update import paths to include github 2015-03-21 01:03:36 -04: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 tests with TestMain 2017-07-13 11:10:39 -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 Use microfactory to build the bootstrap minibp 2017-07-24 14:02:51 -07:00
parser Some util functions to support bpfix 2017-05-23 17:51:44 -07:00
pathtools Add . and / to MockFs 2017-07-14 08:16:00 -07:00
proptools Add proptools functions to escape strings 2016-09-29 14:31:40 -07:00
tests Fix and test rebuilds of bootstrap ninja when using tests 2017-07-24 14:02:51 -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 Fix and test rebuilds of bootstrap ninja when using tests 2017-07-24 14:02:51 -07:00
blueprint.bash Use microfactory to build the bootstrap minibp 2017-07-24 14:02:51 -07:00
blueprint_impl.bash Use microfactory to build the bootstrap minibp 2017-07-24 14:02:51 -07:00
Blueprints Use microfactory to build the bootstrap minibp 2017-07-24 14:02:51 -07:00
bootstrap.bash Unify .ninja_log files 2017-07-24 14:02:51 -07:00
context.go Cap concurrency when parsing blueprint files 2017-05-16 10:55:29 -07:00
context_test.go Import globbing from Soong 2016-11-03 13:54:03 -07:00
CONTRIBUTING.md Add CONTRIBUTING.md file 2015-03-16 00:12:49 -07:00
doc.go Indent code block in doc.go 2015-04-11 09:52: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 BuildParams to override ninja description 2017-05-09 10:02:54 -07:00
mangle.go Add license headers and LICENSE file 2015-01-23 14:23:27 -08:00
module_ctx.go Added a check in BP level for BaseDependencyTag 2017-03-10 16:39:27 -08:00
ninja_defs.go Allow BuildParams to override ninja description 2017-05-09 10:02:54 -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 Improve error reporting 2016-10-12 11:14:18 -07:00
unpack_test.go Improve error reporting 2016-10-12 11:14:18 -07:00
visit_test.go Ask primary builder for module names 2016-10-12 13:33:37 -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.