commit | 29fdcad56c45d04ce50f1eacf7936396b8d81f7d | [log] [tgz] |
---|---|---|
author | Sasha Smundak <asmundak@google.com> | Tue Feb 11 22:39:47 2020 -0800 |
committer | Sasha Smundak <asmundak@google.com> | Mon Mar 02 17:26:20 2020 -0800 |
tree | 1a1c3be5371dc7eecfeb903456b236407a73ea16 | |
parent | c42ef965a0b1d20efcf6d9bc3be001bef4e5199c [diff] |
Implement list of maps Allow property value to be a list of maps, e.g. my_module { my_list: [ { name: "foo", value: 42, something: true, }, { name: "bar", value: 34, something: false, }, ], } Test: internal Change-Id: I2fc37d692aac39f23c9aa7bda2859ab49f3bc672
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.