commit | cc1ec0fedc0e74183891973c327d21201734c585 | [log] [tgz] |
---|---|---|
author | Colin Cross <ccross@android.com> | Wed Sep 19 16:05:43 2018 -0700 |
committer | Colin Cross <ccross@android.com> | Wed Sep 19 16:17:10 2018 -0700 |
tree | bd035ec59d0845e95b0df9cada2fe9a87ce52bdd | |
parent | 0799fad550029be4109db6d81189edf20eb720c7 [diff] |
Replace *Escape with *EscapeList NinjaEscape and ShellEscape operated on lists, which led to awkward NinjaEscape([]string{s})[0]. Replace NinjaEscape and ShellEscape with NinjaEscapeList and ShellEscapeList, and add new NinjaEscape and ShellEscape functions that operate on a string. Test: m checkbuild Change-Id: I283d92cdddc8e0066a300015863a3eab66f77c23
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.