No description
Find a file
Colin Cross 41ca49ff91 Add proptools functions to escape strings
Blueprint properties that end up as command line arguments need to be
both ninja and shell escaped.  Provide helpers that primary builders can
use to appropriately escape them.

Change-Id: Ifd697d87edb1c6f0a910377835c391bbe8f95b42
2016-09-29 14:31:40 -07:00
bootstrap Simplify bootstrap 2016-08-30 17:26:56 -07:00
bpfmt Update import paths to include github 2015-03-21 01:03:36 -04:00
bpmodify Remove blueprint/parser.Ident 2016-06-14 15:26:49 -07:00
deptools Make WriteDepFile escape spaces and special characters 2015-04-14 23:34:24 -04:00
gotestmain Fix package names for executables. 2016-03-23 20:57:43 -07:00
gotestrunner Add a test runner 2015-09-18 10:28:36 -07:00
loadplugins Implement plugins for bootstrap go modules 2015-09-14 15:35:12 -07:00
parser Fix error messages containing variable types 2016-07-15 16:43:42 -07:00
pathtools Fix glob dependencies when initial non-wild path does not exist 2015-06-18 10:49:36 -07:00
proptools Add proptools functions to escape strings 2016-09-29 14:31:40 -07:00
tests Simplify bootstrap 2016-08-30 17:26:56 -07:00
.gitignore Add test suite for bootstrapping 2015-07-23 22:04:42 -07:00
.travis.fix-fork.sh Fix running travis on forked repos 2015-07-23 21:07:32 -07:00
.travis.gofmt.sh Enforce gofmt in travis 2016-08-11 10:21:37 -07:00
.travis.install-ninja.sh Switch to custom-built ninja v1.6.0 2015-07-23 21:07:32 -07:00
.travis.yml Simplify bootstrap 2016-08-30 17:26:56 -07:00
blueprint.bash Simplify bootstrap 2016-08-30 17:26:56 -07:00
Blueprints Add proptools functions to escape strings 2016-09-29 14:31:40 -07:00
bootstrap.bash Simplify bootstrap 2016-08-30 17:26:56 -07:00
build.ninja.in Add proptools functions to escape strings 2016-09-29 14:31:40 -07:00
context.go Merge pull request #117 from colincross/variant 2016-08-15 12:22:37 -07:00
context_test.go Reimplement VisitDirectDeps[If] in on Context.walkdeps 2016-08-08 17:30:38 -07:00
CONTRIBUTING.md Add CONTRIBUTING.md file 2015-03-16 00:12:49 -07:00
doc.go Indent code block in doc.go 2015-04-11 09:52:11 -07:00
fs.go Allow tests to mock filesystem 2016-08-08 17:26:57 -07:00
LICENSE Add license headers and LICENSE file 2015-01-23 14:23:27 -08:00
live_tracker.go Add common implicit deps to Rules 2015-11-17 17:08:05 -08:00
mangle.go Add license headers and LICENSE file 2015-01-23 14:23:27 -08:00
module_ctx.go Parallelize BottomUpMutators 2016-08-10 16:31:35 -07:00
ninja_defs.go Fix gofmt 2016-08-10 16:31:35 -07:00
ninja_strings.go Allow wrapping of PackageContext 2015-11-30 17:03:34 -08:00
ninja_strings_test.go Fix formatting 2015-04-20 16:41:55 -07:00
ninja_writer.go Support comments in build rules. 2015-11-08 12:21:58 -08:00
ninja_writer_test.go Support comments in build rules. 2015-11-08 12:21:58 -08:00
package_ctx.go Add NewBuiltinRule and NewBuiltinPool 2016-08-29 15:12:33 -07:00
README.md Update link to Ninja 2016-08-18 00:48:20 -04:00
scope.go Allow wrapping of PackageContext 2015-11-30 17:03:34 -08:00
singleton_ctx.go Expose ModuleType to Singletons 2016-07-25 15:51:50 -07:00
splice_modules_test.go Parallelize BottomUpMutators 2016-08-10 16:31:35 -07:00
unpack.go Support structures built with StructOf 2016-09-09 13:19:47 -07:00
unpack_test.go Support nil pointers to structs in properties 2016-08-05 17:19:36 -07:00
visit_test.go Reimplement VisitDirectDeps[If] in on Context.walkdeps 2016-08-08 17:30:38 -07:00

Blueprint Build System

Build Status

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.