No description
Find a file
Cole Faust 1e62c68bfe
Separate blueprint parsing and evaluating
Before this cl, blueprint expressions were evaluated as they were
parsed. We want to add a feature to select statements where we can
bind the value of soome value from soong into a blueprint variable,
that then can be used like a regular variable in the .bp file. This
means that select statements need to hold whole unevalated expression
trees, and have the ability to evaluate them later on when the value
of the bound variable is known.

This cl doesn't implement the new select syntax, but it does split
blueprint's parsing and evaluating into two separate stages. We also
store expressions in selects and evaluate them when the select is
resolved.

I didn't do extensive performance evaluation, but a simple comparison
of the time of `touch Android.bp && m nothing` before/after this cl
showed a 1 second speedup. (That was probably just noise)

Bug: 323382414
Test: m nothing --no-skip-soong-tests
Change-Id: I12f373719991afeb4aec76517153f32229d97ff2
2024-10-24 19:18:21 +02:00
.github/workflows Fix github builds for deprecated set-env and add-path commands (#333) 2020-11-23 16:52:58 -08:00
bootstrap Drop blueprint_package_includes 2024-06-05 21:52:41 +00:00
bpfmt Separate blueprint parsing and evaluating 2024-10-24 19:18:21 +02:00
bpmodify Separate blueprint parsing and evaluating 2024-10-24 19:18:21 +02: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 Use relative GOPATH for microfactory golang builds. 2024-04-25 04:44:01 +00:00
optional Return an Optional[T] from Configurable.Get() 2024-05-21 14:48:39 -07:00
parser Separate blueprint parsing and evaluating 2024-10-24 19:18:21 +02:00
pathtools Use maps and slices packages 2024-04-01 15:54:22 -07:00
proptools Separate blueprint parsing and evaluating 2024-10-24 19:18:21 +02: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 Return an Optional[T] from Configurable.Get() 2024-05-21 14:48:39 -07:00
CODEOWNERS Add CODEOWNERS: @google/blueprint 2020-10-07 11:57:54 +08:00
context.go Separate blueprint parsing and evaluating 2024-10-24 19:18:21 +02:00
context_test.go Drop blueprint_package_includes 2024-06-05 21:52:41 +00: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 Use maps and slices packages 2024-04-01 15:54:22 -07:00
glob_test.go Rename Blueprints to Android.bp . 2021-09-02 11:48:19 +02:00
go.mod Update go.mod file to go 1.22 2024-05-23 16:26:02 -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 Separate blueprint parsing and evaluating 2024-10-24 19:18:21 +02: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 Use maps and slices packages 2024-04-01 15:54:22 -07: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 Use FNV instead of maphash as the hasher for soong. 2024-05-29 22:03:29 +00: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 Add OtherModulePropertyErrorf 2024-03-22 13:02:51 -07: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
transition.go Don't sort the results of TransitionMutator.Split 2024-05-08 15:22:27 -07:00
transition_test.go Handle nil variant in applyTransitions 2024-05-09 10:51:20 -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 .