No description
Find a file
Paul Duffin 2aa510c27b Always shard structs if they would exceed maxNameSize even if unfiltered
Previously, a struct (anonymous or named) whose fields all matched the
predicate would not be sharded and would simply be reused. However,
that could break the maxNameSize limitation which could cause problems
for the caller.

This change makes sure that the supplied struct is only reused if it
does not exceed the maxNameSize, and otherwise is sharded.

Bug: 183777071
Test: m nothing
Change-Id: I8af272ec121077a43333e72b67cfd0e493c83362
2021-03-26 09:59:19 +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 an accessor function for the output Ninja file. 2021-03-24 10:57:13 +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 Always shard structs if they would exceed maxNameSize even if unfiltered 2021-03-26 09:59:19 +00: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.