blob: 5370c05b156ce4be91c2efe5ca15fc390192f899 [file] [log] [blame] [view]
Jamie Gennisc4b691f2015-01-27 16:34:06 -05001Blueprint Build System
2======================
Jamie Gennisaefb6572015-03-21 01:53:30 -04003[![Build Status](https://travis-ci.org/google/blueprint.svg?branch=master)](https://travis-ci.org/google/blueprint)
Jamie Gennisc4b691f2015-01-27 16:34:06 -05004
5Blueprint is a meta-build system that reads in Blueprints files that describe
Jamie Gennisaefb6572015-03-21 01:53:30 -04006modules that need to be built, and produces a
Morton Foxebb35412016-08-18 00:48:20 -04007[Ninja](https://ninja-build.org/) manifest describing the commands that
Jamie Gennisaefb6572015-03-21 01:53:30 -04008need to be run and their dependencies. Where most build systems use built-in
9rules or a domain-specific language to describe the logic for converting module
Jamie Gennisc4b691f2015-01-27 16:34:06 -050010descriptions to build rules, Blueprint delegates this to per-project build
11logic written in Go. For large, heterogenous projects this allows the inherent
12complexity of the build logic to be maintained in a high-level language, while
13still allowing simple changes to individual modules by modifying easy to
14understand Blueprints files.