No description
Find a file
Colin Cross 9607a9f248 Allow multiple dependencies on the same module
Allow adding multiple dependencies on the same module.  Adds a flag
to Context.walkDeps to determine whether dependencies should be
visited multiple times, and clarifies the behavior of
VisitDepsDepthFirst (continues to visit each module once, even if
there are multiple dependencies on it) and VisitDirectDeps (may
visit a module multiple times).

Test: TestWalkDepsDuplicates, TestVisit
Change-Id: I58afbe90490aca102d242d63e185386e1fe55d73
2018-06-20 14:10:18 -07:00
bootstrap Merge pull request #203 from danw/numcpu_cap 2018-03-02 16:02:06 -08:00
bpfmt Fix format issues found by go vet 2018-02-23 14:05:03 -08:00
bpmodify Fix format issues found by go vet 2018-02-23 14:05:03 -08:00
deptools Make WriteDepFile escape spaces and special characters 2015-04-14 23:34:24 -04:00
gotestmain Support go1.10 2018-02-27 01:49:49 -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 Disable parallel compilation when using race detector 2018-04-30 14:44:22 -07:00
parser Improve indentation for multi-line expressions 2018-05-07 16:15:33 -07:00
pathtools Append / to directories in Glob results 2018-02-23 17:21:37 -08:00
proptools Add proptools.BoolDefault and proptools.StringDefault 2018-04-10 16:51:47 -07: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
.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 Support go1.10 2018-02-27 01:49:49 -08:00
blueprint.bash Use microfactory to build the bootstrap minibp 2017-07-24 14:02:51 -07:00
blueprint_impl.bash Support for a custom list of Blueprints files to parse 2017-10-30 15:00:19 -07:00
Blueprints Add Patch and PatchList for making textual changes 2018-04-10 16:50:39 -07:00
bootstrap.bash Support for a custom list of Blueprints files to parse 2017-10-30 15:00:19 -07:00
context.go Allow multiple dependencies on the same module 2018-06-20 14:10:18 -07:00
context_test.go Allow multiple dependencies on the same module 2018-06-20 14:10:18 -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 Fix glob cache conflict when excludes=nil and excludes=[]string{} 2018-02-23 14:03:56 -08:00
glob_test.go Fix glob cache conflict when excludes=nil and excludes=[]string{} 2018-02-23 14:03:56 -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 Allow multiple dependencies on the same module 2018-06-20 14:10:18 -07:00
name_interface.go Return an error when renaming a module that doesn't exist 2018-04-16 14:44:41 -07:00
ninja_defs.go Allow rules to specify order-only dependencies 2017-10-17 13:50:49 -07:00
ninja_strings.go Make ninja file deterministic even with dup module names 2017-12-04 17:16:21 -08: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 Append / to directories in Glob results 2018-02-23 17:21:37 -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 Allow multiple dependencies on the same module 2018-06-20 14:10:18 -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.