No description
Find a file
Colin Cross 85398a916a Simplify printer whitespace and newline handling
Trying to handle all the whitespace and newline printing inside
printToken got overly complicated, and resulted in a few bugs in
the layout around comments and indentation that were hard to fix.
Rewrite the whitespace and newline handling to be handled directly
by the object printers, using requestSpace() to ensure whitespace
is inserted and requestNewline() to ensure a newline is inserted.

Also fixes unnecessarily left aligning all comments that contain
indentation, and fixes accidentally unindenting comments that are
the last token in their indented block.

Change-Id: I18707802726107cf0b6ec7de9b542d0ec1d2c0dd
2015-03-20 16:55:32 -07:00
bootstrap Merge pull request #3 from colincross/features 2015-03-10 13:06:59 -07:00
bpfmt Move blueprint/* up a directory 2015-01-23 14:23:27 -08:00
bpmodify Move blueprint/* up a directory 2015-01-23 14:23:27 -08:00
deptools Add license headers and LICENSE file 2015-01-23 14:23:27 -08:00
parser Simplify printer whitespace and newline handling 2015-03-20 16:55:32 -07:00
pathtools Add license headers and LICENSE file 2015-01-23 14:23:27 -08:00
proptools Fix bug when copying slice to itself 2015-03-11 16:09:00 -07:00
Blueprints Run bpfmt -w . to reformat Blueprints file 2015-01-26 16:56:10 -08:00
bootstrap.bash Clean up the bootstrap script a little. 2014-06-18 12:57:56 -07:00
build.ninja.in Run bpfmt -w . to reformat Blueprints file 2015-01-26 16:56:10 -08:00
context.go Merge pull request #9 from colincross/createvariations 2015-03-16 11:56:07 -07:00
context_test.go Add license headers and LICENSE file 2015-01-23 14:23:27 -08:00
CONTRIBUTING.md Add CONTRIBUTING.md file 2015-03-16 00:12:49 -07:00
doc.go Fix same typo in doc.go 2015-03-16 18:31:55 +01:00
LICENSE Add license headers and LICENSE file 2015-01-23 14:23:27 -08:00
live_tracker.go Move build actions into modules 2015-03-12 17:36:57 -07:00
mangle.go Add license headers and LICENSE file 2015-01-23 14:23:27 -08:00
module_ctx.go Split "variant" terminology into "variant" and "variation" 2015-03-13 16:02:36 -07:00
ninja_defs.go Add license headers and LICENSE file 2015-01-23 14:23:27 -08:00
ninja_strings.go Relax module naming restrictions 2015-03-12 17:22:18 -07:00
ninja_strings_test.go Add license headers and LICENSE file 2015-01-23 14:23:27 -08:00
ninja_writer.go Add license headers and LICENSE file 2015-01-23 14:23:27 -08:00
ninja_writer_test.go Add license headers and LICENSE file 2015-01-23 14:23:27 -08:00
package_ctx.go Add license headers and LICENSE file 2015-01-23 14:23:27 -08:00
README.md Fix typo 2015-03-15 22:29:02 +01:00
scope.go Add license headers and LICENSE file 2015-01-23 14:23:27 -08:00
singleton_ctx.go Move values from moduleGroup to moduleInfo 2015-03-12 17:22:18 -07:00
splice_modules_test.go Fix a bug in spliceModules and add tests 2015-03-16 00:13:59 -07:00
unpack.go Add license headers and LICENSE file 2015-01-23 14:23:27 -08:00
unpack_test.go Add license headers and LICENSE file 2015-01-23 14:23:27 -08:00

Blueprint Build System

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 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.