No description
Find a file
Colin Cross 802e9759cd Add proptools.CloneEmptyProperties
Modules that want properties that vary by variant often need to create
zeroed copies of property structs.  Add CloneEmptyProperties to proptools
that is the equivalent of calling CloneProperties and then ZeroProperties,
but is much faster because it directly creates zeroed objects.

Saves 200ms in Context.ParseBlueprintsFiles and Context.ResolveDependencies
in one case, which will be valuble when we start parsing Blueprints files
for cases where we are not regenerating the manifest, for example when
generating documentation or doing context-aware bpfmt.

Change-Id: I3d4a6af2f393886d95f27d15afc1a455d8dd5fc6
2015-05-14 15:55:10 -07:00
bootstrap Fix formatting 2015-04-20 16:41:55 -07:00
bpfmt Update import paths to include github 2015-03-21 01:03:36 -04:00
bpmodify Update import paths to include github 2015-03-21 01:03:36 -04:00
deptools Make WriteDepFile escape spaces and special characters 2015-04-14 23:34:24 -04:00
parser Update import paths to include github 2015-03-21 01:03:36 -04:00
pathtools Add GlobWithExcludes to pathtools 2015-04-29 22:31:44 -07:00
proptools Add proptools.CloneEmptyProperties 2015-05-14 15:55:10 -07:00
.travis.yml Add .travis.yml to configure CI 2015-03-21 03:12:46 -04:00
Blueprints Add support for arbitrary globs in subdirs 2015-04-14 23:34:34 -04:00
bootstrap.bash Clean up the bootstrap script a little. 2014-06-18 12:57:56 -07:00
build.ninja.in Add support for arbitrary globs in subdirs 2015-04-14 23:34:34 -04:00
context.go Merge pull request #25 from colincross/fardependency 2015-05-11 15:38:26 -07:00
context_test.go Add support for build= variable 2015-04-20 17:25:17 -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
LICENSE Add license headers and LICENSE file 2015-01-23 14:23:27 -08:00
live_tracker.go Adding a builtinPool type 2015-04-16 13:10:19 -04:00
mangle.go Add license headers and LICENSE file 2015-01-23 14:23:27 -08:00
module_ctx.go Add support for "far dependencies" 2015-05-08 11:14:54 -07:00
ninja_defs.go Add license headers and LICENSE file 2015-01-23 14:23:27 -08:00
ninja_strings.go Fix formatting 2015-04-20 16:41:55 -07:00
ninja_strings_test.go Fix formatting 2015-04-20 16:41:55 -07:00
ninja_writer.go Optimize ninja_writer 2015-04-15 11:03:06 -07:00
ninja_writer_test.go Add license headers and LICENSE file 2015-01-23 14:23:27 -08:00
package_ctx.go Fix formatting 2015-04-20 16:41:55 -07:00
README.md Add .travis.yml to configure CI 2015-03-21 03:12:46 -04:00
scope.go Adding a builtinPool type 2015-04-16 13:10:19 -04:00
singleton_ctx.go Move values from moduleGroup to moduleInfo 2015-03-12 17:22:18 -07:00
splice_modules_test.go Update import paths to include github 2015-03-21 01:03:36 -04:00
unpack.go Update import paths to include github 2015-03-21 01:03:36 -04:00
unpack_test.go Update import paths to include github 2015-03-21 01:03:36 -04: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.