No description
Find a file
Cole Faust 6437d4e737 Select statements
Select statements are a new blueprint feature inspired by bazel's select
statements. They are essentially alternative syntax for soong config
variables that require less boilerplate. In addition, they support
making decisions based on a module's variant, which will eliminate
the need for manual property struct manipulation, such as the arch
mutator's arch: and target: properties.

In order to support decisions based on the variant, select statements
cannot be evaluated as soon as they're parsed. Instead, they must be
stored in the property struct unevaluated. This means that individual
properties need to change their type from say, string, to
Configurable[string]. Currently, only configurable strings, bools, and
string slices are supported, but more types can be added later.
The module implementation must call my_property.Evaluate(ctx) in order
to get the final, resolved value of the select statement.

Bug: 323382414
Test: go tests
Change-Id: I62f8721d7f0ac3d1df4a06d7eaa260a5aa7fcba3
2024-03-06 15:00:39 -08: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 new soong module debug info json. 2024-02-03 14:37:02 -08:00
bpfmt bpfmt: Process all blueprint files when a directory is specified 2023-08-04 01:01:55 -07:00
bpmodify bpmodify: Add a set-bool flag to set single boolean values 2022-10-28 18:46:51 +00:00
deptools Make WriteDepFile escape spaces and special characters 2015-04-14 23:34:24 -04:00
gotestmain Support go1.18, drop support for <go1.8 2021-12-14 15:58:35 -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
metrics Add unit test for EventHandler 2023-02-27 11:41:51 -05:00
microfactory apply gofmt 2023-02-21 15:11:20 -05:00
parser Select statements 2024-03-06 15:00:39 -08:00
pathtools Remove unnecessary locking in fs 2023-10-31 20:24:35 +00:00
proptools Select statements 2024-03-06 15:00:39 -08:00
tests Make test_tree_tests.sh slightly easier to read 2017-10-30 15:00:19 -07:00
.gitignore gitignore intelliJ files 2022-02-02 11:36:11 -05:00
.gofmt.sh Use github actions instead of travis 2020-06-15 10:32:10 -07:00
Android.bp Select statements 2024-03-06 15:00:39 -08:00
CODEOWNERS Add CODEOWNERS: @google/blueprint 2020-10-07 11:57:54 +08:00
context.go debugValue: handle Interfaces better. 2024-02-23 15:04:04 -08:00
context_test.go Optimize deduplicateOrderOnlyDeps 2024-02-02 15:57:26 -08:00
CONTRIBUTING.md Add CONTRIBUTING.md file 2015-03-16 00:12:49 -07:00
doc.go apply gofmt 2023-02-21 15:11:20 -05:00
glob.go Speed up globs with sharding 2021-04-15 11:04:11 -07:00
glob_test.go Rename Blueprints to Android.bp . 2021-09-02 11:48:19 +02:00
go.mod Use strings instead of simpleNinjaStrings where possible 2023-11-01 15:15:15 -07:00
levenshtein.go Add name hint to blueprint. 2023-04-10 20:21:15 +00:00
levenshtein_test.go Add name hint to blueprint. 2023-04-10 20:21:15 +00:00
LICENSE Add license headers and LICENSE file 2015-01-23 14:23:27 -08:00
live_tracker.go Wrap singleton ninjaString Eval calls 2023-07-11 19:58:01 +00:00
mangle.go Add license headers and LICENSE file 2015-01-23 14:23:27 -08:00
module_ctx.go Optimize returning the zero value from provider APIs 2023-12-14 16:59:19 -08:00
module_ctx_test.go Remove pre singletons 2023-11-01 15:26:17 -07:00
name_interface.go Add name hint to blueprint. 2023-04-10 20:21:15 +00:00
ninja_defs.go Merge "Remove SymlinkOutputs" into main 2024-01-19 19:38:55 +00:00
ninja_strings.go Optimize deduplicateOrderOnlyDeps 2024-02-02 15:57:26 -08:00
ninja_strings_test.go Move name memoization out of variables 2024-01-18 12:28:49 -08:00
ninja_writer.go Move name memoization out of variables 2024-01-18 12:28:49 -08:00
ninja_writer_test.go Use strings instead of simpleNinjaStrings where possible 2023-11-01 15:15:15 -07:00
OWNERS Refactor OWNERS in platform/build/blueprint 2020-10-08 16:23:53 -07:00
package_ctx.go Move name memoization out of variables 2024-01-18 12:28:49 -08:00
PREUPLOAD.cfg Add preupload hooks to build/blueprint 2021-02-23 10:29:46 -08:00
provider.go Enforce that providers are not changed 2024-01-30 15:18:24 -08:00
provider_test.go Use generics for providers API 2023-12-14 16:59:16 -08:00
README.md Update README.md . 2022-10-10 07:06:22 +00:00
scope.go Move name memoization out of variables 2024-01-18 12:28:49 -08:00
singleton_ctx.go Use generics for providers API 2023-12-14 16:59:16 -08:00
source_file_provider.go Use generics for providers API 2023-12-14 16:59:16 -08:00
splice_modules_test.go Maintain ordering between variants and aliases 2020-09-09 18:29:15 -07:00
visit_test.go apply gofmt 2023-02-21 15:11:20 -05:00

Blueprint Build System

Blueprint is part of Soong.

For more information, see build/soong/README.md .