No description
Find a file
Jiyong Park 1e2e56dc62 Add SetDefaultDependencyVariation
SetDefaultDependencyVariation sets the variation name that will be used
when a dangling dependency is found while a module is being split. A
dangling dependency can occur if a module is split to a variant that one
of its dependencies is not split into. When the default variation is not
set, such dangling dependency is a hard error. But with the new
function, the default variation can be set and subsequent calls to
CreateVariations and its variations on the same context uses the default
variation when necessary.

(If even the default variation does not exist for the dependent module,
it is an hard error)

Note that this is different from calling SetDependencyVariation("foo")
followed by CreateVariations("foo", "bar"). In that case, regardless of
whether a dependency of the current module has the variant 'bar' or not,
only the 'foo' variant is chosen.

With SetDefaultDependencyVariation("foo") followed by
CreateVariations("foo", "bar"), 'foo' variant is used only when the
'bar' variant of the current module depends on a module that does not
have 'bar' variant.

Bug: 138103882
Test: m
Change-Id: I4520ca87487994de024fdbacda3bef6636225f0d
2019-08-09 12:49:11 -07:00
bootstrap Revert "Put the primary builder into the console pool" 2019-07-18 13:53:43 -07:00
bpfmt Correctly report errors in bpfmt 2019-05-21 11:03:00 -07:00
bpmodify bpmodify: add argument if it is missing 2018-12-17 18:16:16 -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 Disable parallel compilation when using race detector 2018-04-30 14:44:22 -07:00
parser Emit errors on mixed property syntax 2018-06-26 12:20:08 +08:00
pathtools Simplify pathtools.Match 2019-05-20 14:57:36 -07:00
proptools Fix/improve comments on prepending/appending props 2019-07-08 14:07:45 -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 Remove go 1.9 testing 2019-06-20 11:05:58 -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 Skip mutated struct properties in bpdoc. 2019-06-05 16:52:47 -07:00
bootstrap.bash Add --empty-ninja-file for test usecases 2018-10-26 09:57:24 -07:00
context.go Add SetDefaultDependencyVariation 2019-08-09 12:49:11 -07:00
context_test.go Make sure all modules have a name. (#226) 2018-10-11 13:01:05 -07: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 Add ShouldFollowSymlinks argument to pathtools.Glob 2018-09-24 15:09:32 -07: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 go.mod for go1.11 module support 2018-07-21 13:02:56 -07: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 Add SetDefaultDependencyVariation 2019-08-09 12:49:11 -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 Write ninja file directly to the output file 2019-01-23 13:26:42 -08:00
ninja_strings.go Optimize ninjaString.ValueWithEscaper 2019-06-20 11:05:58 -07:00
ninja_strings_test.go Optimize ninjaString.ValueWithEscaper 2019-06-20 11:05:58 -07:00
ninja_writer.go Write ninja file directly to the output file 2019-01-23 13:26:42 -08:00
ninja_writer_test.go Run globs during earlier bootstrap phases 2018-07-06 10:39:38 -07:00
package_ctx.go Support go 1.12 2019-02-28 14:38:42 -08: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 Move module and singleton godoc from the implementation to the interface 2019-05-20 15:08:39 -07:00
splice_modules_test.go Parallelize BottomUpMutators 2016-08-10 16:31:35 -07:00
unpack.go Allow mutated property structs to contain slices of non-strings 2018-10-03 14:29:12 -07:00
unpack_test.go Allow mutated property structs to contain slices of non-strings 2018-10-03 14:29: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.