commit | f7beb89df520f06e08dc31addde5fcfe4a79e946 | [log] [tgz] |
---|---|---|
author | Colin Cross <ccross@android.com> | Wed Nov 13 20:11:14 2019 -0800 |
committer | Colin Cross <ccross@android.com> | Thu Nov 14 12:58:52 2019 -0800 |
tree | b37ad37139d5d99a8f68ecefecd389da11b6b019 | |
parent | 9403b5a790a8750cc98036d0265fed99b2610b5b [diff] |
Add support for module variant aliases Adding a dependency on a module with variants can be problematic if the code adding the dependency is not aware of every mutator that has created variants. Add an AliasVariations to BottomUpMutatorContext, which allows a mutator to alias the original variant of a module to one of the new variants of the module, which will allow future dependencies to be added using the original list of variations. The aliases are transient, and only exist until the next mutator that calls CreateVariations when visiting the module without also calling AliasVariations. Test: TestAlises Change-Id: Ieaa04b5a6bdcb5a1ff5114b1e03460de795d4479
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.