platform_build_soong/starlark_import
Cole Faust f055db60d4 Create build settings for all product config variables
Bug: 269577299
Test: Presubmits
Change-Id: Id8b7d65d657fa20ad8591e58d5173445b0e4f4df
2023-07-25 11:47:20 -07:00
..
Android.bp Load starlark files from soong 2023-04-26 17:18:19 -07:00
README.md Load starlark files from soong 2023-04-26 17:18:19 -07:00
starlark_import.go Load starlark files from soong 2023-04-26 17:18:19 -07:00
starlark_import_test.go Load starlark files from soong 2023-04-26 17:18:19 -07:00
unmarshal.go Create build settings for all product config variables 2023-07-25 11:47:20 -07:00
unmarshal_test.go Platform mapping-based product config 2023-07-17 16:27:08 -07:00

starlark_import package

This allows soong to read constant information from starlark files. At package initialization time, soong will read build/bazel/constants_exported_to_soong.bzl, and then make the variables from that file available via starlark_import.GetStarlarkValue(). So to import a new variable, it must be added to constants_exported_to_soong.bzl and then it can be accessed by name.

Only constant information can be read, since this is not a full bazel execution but a standalone starlark interpreter. This means you can't use bazel contructs like rule, provider, select, glob, etc.

All starlark files that were loaded must be added as ninja deps that cause soong to rerun. The loaded files can be retrieved via starlark_import.GetNinjaDeps().