No description
1e2e56dc62
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 |
||
---|---|---|
bootstrap | ||
bpfmt | ||
bpmodify | ||
deptools | ||
gotestmain | ||
gotestrunner | ||
loadplugins | ||
microfactory | ||
parser | ||
pathtools | ||
proptools | ||
tests | ||
.gitignore | ||
.travis.fix-fork.sh | ||
.travis.gofmt.sh | ||
.travis.install-ninja.sh | ||
.travis.yml | ||
blueprint.bash | ||
blueprint_impl.bash | ||
Blueprints | ||
bootstrap.bash | ||
context.go | ||
context_test.go | ||
CONTRIBUTING.md | ||
doc.go | ||
glob.go | ||
glob_test.go | ||
go.mod | ||
LICENSE | ||
live_tracker.go | ||
mangle.go | ||
module_ctx.go | ||
name_interface.go | ||
ninja_defs.go | ||
ninja_strings.go | ||
ninja_strings_test.go | ||
ninja_writer.go | ||
ninja_writer_test.go | ||
package_ctx.go | ||
README.md | ||
scope.go | ||
singleton_ctx.go | ||
splice_modules_test.go | ||
unpack.go | ||
unpack_test.go | ||
visit_test.go |
Blueprint Build System
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.