commit | 6134a5c66a32a15c48ef9f760e756febde0335e5 | [log] [tgz] |
---|---|---|
author | Colin Cross <ccross@android.com> | Tue Feb 10 11:26:26 2015 -0800 |
committer | Colin Cross <ccross@android.com> | Thu Mar 12 17:22:18 2015 -0700 |
tree | 1f7afa36d10536cbaa45e7eb62c47a2dc9962d99 | |
parent | 50fb09375ad6dbc702c8973609dd477e3bbd47a7 [diff] |
Relax module naming restrictions Forcing module names to be valid ninja names is an unnecessary restraint on the project build logic. Allow any string as a module name, and sanitize and uniquify the module name for use in module-scoped variables. Also move the module scope to be per-module instead of per-group so that modules can use the same local variable name for each variant. Change-Id: If44cca20712305e2c0b6d6b39daa5eace335c148
Blueprint is a meta-build system that reads in Blueprints files that describe modules that need to be built, and produces a Ninja (http://martine.github.io/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 langauge 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.