aboutsummaryrefslogtreecommitdiff
path: root/rules/common/sdk_version.bzl
diff options
context:
space:
mode:
Diffstat (limited to 'rules/common/sdk_version.bzl')
-rw-r--r--rules/common/sdk_version.bzl45
1 files changed, 32 insertions, 13 deletions
diff --git a/rules/common/sdk_version.bzl b/rules/common/sdk_version.bzl
index 7b853762..33f2f61c 100644
--- a/rules/common/sdk_version.bzl
+++ b/rules/common/sdk_version.bzl
@@ -17,18 +17,25 @@ load("//build/bazel/rules/common:api.bzl", "api")
# Only scopes that are available in prebuilts (and "none") are listed
# here for now, but the list should eventually match Soong's SdkKind
# enum.
-ALL_KINDS = [
- "public",
- "system",
- "test",
- "system_server",
- "module",
- "core",
- "none",
+_KIND_PUBLIC = "public"
+_KIND_SYSTEM = "system"
+_KIND_TEST = "test"
+_KIND_SYSTEM_SERVER = "system_server"
+_KIND_MODULE = "module"
+_KIND_CORE = "core"
+_KIND_NONE = "none"
+_ALL_KINDS = [
+ _KIND_PUBLIC,
+ _KIND_SYSTEM,
+ _KIND_TEST,
+ _KIND_SYSTEM_SERVER,
+ _KIND_MODULE,
+ _KIND_CORE,
+ _KIND_NONE,
]
# Starlark implementation of SdkSpecFrom at https://cs.android.com/android/platform/build/soong/+/master:android/sdk_version.go;l=248-299;drc=69f4218c4feaeca953237cd9e76a9a8cc423d3e3.
-def sdk_spec_from(sdk_version):
+def _sdk_spec_from(sdk_version):
"""Parses an sdk_version string into kind and api_level.
Args:
@@ -49,17 +56,29 @@ def sdk_spec_from(sdk_version):
if sdk_version == "core_platform":
fail("Only prebuilt SDK versions are available, sdk_version core_platform is not yet supported.")
if sdk_version == "none":
- return struct(kind = "none", api_level = api.NONE_API_LEVEL)
+ return struct(kind = _KIND_NONE, api_level = api.NONE_API_LEVEL)
if type(sdk_version) != type(""):
fail("sdk_version must be a string")
sep_index = sdk_version.rfind("_")
api_level_string = sdk_version if sep_index < 0 else sdk_version[sep_index + 1:]
api_level = api.parse_api_level_from_version(api_level_string)
- kind = "public" if sep_index == -1 else sdk_version[:sep_index]
- if kind not in ALL_KINDS:
+ kind = _KIND_PUBLIC if sep_index == -1 else sdk_version[:sep_index]
+ if kind not in _ALL_KINDS:
fail("kind %s parsed from sdk_version %s must be one of %s" % (
kind,
sdk_version,
- ",".join(ALL_KINDS),
+ ",".join(_ALL_KINDS),
))
return struct(kind = kind, api_level = api_level)
+
+sdk_version = struct(
+ KIND_PUBLIC = _KIND_PUBLIC,
+ KIND_SYSTEM = _KIND_SYSTEM,
+ KIND_TEST = _KIND_TEST,
+ KIND_SYSTEM_SERVER = _KIND_SYSTEM_SERVER,
+ KIND_MODULE = _KIND_MODULE,
+ KIND_CORE = _KIND_CORE,
+ KIND_NONE = _KIND_NONE,
+ ALL_KINDS = _ALL_KINDS,
+ sdk_spec_from = _sdk_spec_from,
+)