commit | 4adc8194905e72bcc240ef5bf5bbb2175c329c16 | [log] [tgz] |
---|---|---|
author | Colin Cross <ccross@android.com> | Mon Jun 22 13:38:45 2015 -0700 |
committer | Colin Cross <ccross@android.com> | Fri Jun 26 10:46:17 2015 -0700 |
tree | d6288cdd4f70388f21b9eb5ce921a0fd2202ee79 | |
parent | 944a7a5ed4a1b554dde0bb8be493a65d4a8dc1ba [diff] |
Support filtering nested structures by tag Allow tagging a nested property structure with `blueprint:"filter(key:\"value\")"`, which will only allow property assignments to properites in the nested structure that are tagged with `key:"value"`. Moving the filter into Blueprint instead of the project build logic allows more reliable and consistent error messages. Change-Id: I06bc673dde647776fc5552673bdc0cdcd7216462
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.