No description
Find a file
2021-03-18 09:14:41 +00:00
.github/workflows Fix github builds for deprecated set-env and add-path commands (#333) 2020-11-23 16:52:58 -08:00
bootstrap Add a flag to compile Go code for debugging. 2021-03-17 15:01:51 +01:00
bpfmt Make bpfmt use exit codes even when reading from stdin. 2021-02-17 20:24:50 -08:00
bpmodify bpmodify: support numerical sort (#332) 2020-12-14 11:30:48 -08:00
deptools Make WriteDepFile escape spaces and special characters 2015-04-14 23:34:24 -04:00
gotestmain Support examples as tests 2019-02-15 15:13:37 -08:00
gotestrunner gotestrunner: Make GOROOT absolute before chdir 2017-01-18 14:42:09 -08:00
loadplugins Implement plugins for bootstrap go modules 2015-09-14 15:35:12 -07:00
microfactory Make debugging easier: 2021-03-03 09:15:04 +01:00
parser Fix numericStringLess and add tests 2021-03-08 17:59:55 -08:00
pathtools Fix ReplaceExtension 2021-02-16 21:45:01 -08:00
proptools Add ShellEscapeIncludingSpaces(string) 2021-03-12 14:37:42 +09:00
tests Make test_tree_tests.sh slightly easier to read 2017-10-30 15:00:19 -07:00
.gitignore Import globbing from Soong 2016-11-03 13:54:03 -07:00
.gofmt.sh Use github actions instead of travis 2020-06-15 10:32:10 -07:00
blueprint.bash Use microfactory to build the bootstrap minibp 2017-07-24 14:02:51 -07:00
blueprint_impl.bash Run globs during earlier bootstrap phases 2018-07-06 10:39:38 -07:00
Blueprints Fix numericStringLess and add tests 2021-03-08 17:59:55 -08:00
bootstrap.bash Add flag to use validations for tests 2020-07-09 14:28:20 -07:00
CODEOWNERS Add CODEOWNERS: @google/blueprint 2020-10-07 11:57:54 +08:00
context.go Fix detecting cycles in parallelVisit 2021-02-08 15:56:43 -08:00
context_test.go Fix detecting cycles in parallelVisit 2021-02-08 15:56:43 -08:00
CONTRIBUTING.md Add CONTRIBUTING.md file 2015-03-16 00:12:49 -07:00
doc.go Fix Ninja build system site link 2019-03-23 16:31:07 +02:00
glob.go Return a copy of glob lists 2021-01-21 13:47:59 -08:00
glob_test.go Fix glob cache conflict when excludes=nil and excludes=[]string{} 2018-02-23 14:03:56 -08:00
go.mod Add proptools.Int and proptools.IntDefault 2019-09-25 14:52:54 -07:00
LICENSE Add license headers and LICENSE file 2015-01-23 14:23:27 -08:00
live_tracker.go Add Validations support to Blueprint 2020-07-09 14:28:20 -07:00
mangle.go Add license headers and LICENSE file 2015-01-23 14:23:27 -08:00
module_ctx.go Actually pause mutators when adding dependencies (#335) 2020-12-14 11:23:23 -08:00
module_ctx_test.go Improve formatting of some error messages. (#327) 2020-11-16 12:15:36 -08:00
name_interface.go Maintain ordering between variants and aliases 2020-09-09 18:29:15 -07:00
ninja_defs.go Write build definitions directly to output writer 2021-01-21 22:02:30 -08:00
ninja_strings.go Write build definitions directly to output writer 2021-01-21 22:02:30 -08:00
ninja_strings_test.go Make ninjaString an interface 2020-01-29 16:23:40 -08:00
ninja_writer.go Write build definitions directly to output writer 2021-01-21 22:02:30 -08:00
ninja_writer_test.go Write build definitions directly to output writer 2021-01-21 22:02:30 -08:00
OWNERS Refactor OWNERS in platform/build/blueprint 2020-10-08 16:23:53 -07:00
package_ctx.go Memoize full names of variables, pools and rules 2021-01-21 22:02:30 -08:00
PREUPLOAD.cfg Add preupload hooks to build/blueprint 2021-02-23 10:29:46 -08:00
provider.go Add Providers to Blueprint 2020-09-22 18:20:18 -07:00
provider_test.go Add Providers to Blueprint 2020-09-22 18:20:18 -07:00
README.md Use github actions instead of travis 2020-06-15 10:32:10 -07:00
scope.go Memoize full names of variables, pools and rules 2021-01-21 22:02:30 -08:00
singleton_ctx.go Add Providers to Blueprint 2020-09-22 18:20:18 -07:00
splice_modules_test.go Maintain ordering between variants and aliases 2020-09-09 18:29:15 -07:00
visit_test.go Maintain ordering between variants and aliases 2020-09-09 18:29:15 -07:00

Blueprint Build System

build

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.