Jamie Gennis | c4b691f | 2015-01-27 16:34:06 -0500 | [diff] [blame] | 1 | Blueprint Build System |
| 2 | ====================== |
Jamie Gennis | aefb657 | 2015-03-21 01:53:30 -0400 | [diff] [blame] | 3 | [](https://travis-ci.org/google/blueprint) |
Jamie Gennis | c4b691f | 2015-01-27 16:34:06 -0500 | [diff] [blame] | 4 | |
| 5 | Blueprint is a meta-build system that reads in Blueprints files that describe |
Jamie Gennis | aefb657 | 2015-03-21 01:53:30 -0400 | [diff] [blame] | 6 | modules that need to be built, and produces a |
Morton Fox | ebb3541 | 2016-08-18 00:48:20 -0400 | [diff] [blame] | 7 | [Ninja](https://ninja-build.org/) manifest describing the commands that |
Jamie Gennis | aefb657 | 2015-03-21 01:53:30 -0400 | [diff] [blame] | 8 | need to be run and their dependencies. Where most build systems use built-in |
| 9 | rules or a domain-specific language to describe the logic for converting module |
Jamie Gennis | c4b691f | 2015-01-27 16:34:06 -0500 | [diff] [blame] | 10 | descriptions to build rules, Blueprint delegates this to per-project build |
| 11 | logic written in Go. For large, heterogenous projects this allows the inherent |
| 12 | complexity of the build logic to be maintained in a high-level language, while |
| 13 | still allowing simple changes to individual modules by modifying easy to |
| 14 | understand Blueprints files. |