• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1load("@bazel_skylib//rules:common_settings.bzl", "bool_flag", "bool_setting", "string_list_setting", "string_setting")
2load("@env//:env.bzl", "env")
3load("@soong_injection//api_levels:platform_versions.bzl", "platform_versions")
4load("@soong_injection//product_config:product_variables.bzl", "product_vars")
5load("//build/bazel/flags:common.bzl", "is_env_true")
6load("//build/bazel/product_variables:constants.bzl", "constants")
7load("//build/bazel/rules:metadata.bzl", "metadata")
8load("//build/bazel/rules/apex:toolchain.bzl", "apex_toolchain")
9load("//build/bazel/rules/common:api.bzl", "api")
10load(":apex_aab_test.bzl", "apex_aab_test_suite")
11load(":apex_key_test.bzl", "apex_key_test_suite")
12load(":apex_mk_test.bzl", "apex_mk_test_suite")
13load(":apex_test.bzl", "apex_test_suite")
14
15# Setup package and default_metadata_file for _test_apex_sbom in apex_test.bzl
16package(default_package_metadata = [":default_metadata_file"])
17
18metadata(name = "default_metadata_file")
19
20string_setting(
21    name = "apex_name",
22    build_setting_default = "",
23    visibility = ["//visibility:public"],
24)
25
26string_setting(
27    name = "base_apex_name",
28    build_setting_default = "",
29    visibility = ["//visibility:public"],
30)
31
32string_setting(
33    name = "override_apex_manifest_default_version",
34    build_setting_default = env.get("OVERRIDE_APEX_MANIFEST_DEFAULT_VERSION", ""),
35    visibility = ["//visibility:public"],
36)
37
38string_setting(
39    name = "apex_global_min_sdk_version_override",
40    # TODO(b/269577299): Make this read from //build/bazel/product_config:product_vars instead.
41    build_setting_default = product_vars.get("ApexGlobalMinSdkVersionOverride", ""),
42    visibility = ["//visibility:public"],
43)
44
45bool_setting(
46    name = "within_apex",
47    build_setting_default = False,
48    visibility = ["//visibility:public"],
49)
50
51config_setting(
52    name = "in_apex",
53    flag_values = {
54        ":within_apex": "True",
55    },
56)
57
58config_setting(
59    name = "non_apex",
60    flag_values = {
61        ":apex_name": "",
62    },
63)
64
65config_setting(
66    name = "android-in_apex",
67    constraint_values = [
68        constants.ArchVariantToConstraints["android"],
69    ],
70    flag_values = {
71        ":within_apex": "True",
72    },
73)
74
75config_setting(
76    name = "android-non_apex",
77    constraint_values = [
78        constants.ArchVariantToConstraints["android"],
79    ],
80    flag_values = {
81        ":within_apex": "False",
82    },
83)
84
85config_setting(
86    name = "linux_bionic-in_apex",
87    constraint_values = [
88        constants.ArchVariantToConstraints["linux_bionic"],
89    ],
90    flag_values = {
91        ":within_apex": "True",
92    },
93)
94
95config_setting(
96    name = "linux_bionic-non_apex",
97    constraint_values = [
98        constants.ArchVariantToConstraints["linux_bionic"],
99    ],
100    flag_values = {
101        ":within_apex": "False",
102    },
103)
104
105string_list_setting(
106    name = "apex_direct_deps",
107    build_setting_default = [],
108    visibility = ["//visibility:public"],
109)
110
111bool_flag(
112    name = "apexer_verbose",
113    build_setting_default = False,
114    visibility = ["//visibility:public"],
115)
116
117string_setting(
118    name = "min_sdk_version",
119    build_setting_default = "",
120    visibility = ["//visibility:public"],
121)
122
123[
124    config_setting(
125        name = "min_sdk_version_" + str(level),
126        flag_values = {
127            ":min_sdk_version": str(level),
128        },
129    )
130    for level in api.api_levels.values()
131]
132
133bool_flag(
134    name = "unsafe_disable_apex_allowed_deps_check",
135    build_setting_default = is_env_true(env.get("UNSAFE_DISABLE_APEX_ALLOWED_DEPS_CHECK")),
136    visibility = ["//visibility:public"],
137)
138
139bool_flag(
140    name = "unbundled_build_target_sdk_with_api_fingerprint",
141    build_setting_default = is_env_true(env.get("UNBUNDLED_BUILD_TARGET_SDK_WITH_API_FINGERPRINT")),
142    visibility = ["//visibility:public"],
143)
144
145string_setting(
146    name = "platform_sdk_codename",
147    build_setting_default = platform_versions.platform_sdk_codename,
148    visibility = ["//visibility:public"],
149)
150
151toolchain_type(name = "apex_toolchain_type")
152
153apex_toolchain(
154    name = "apex_toolchain",
155    aapt2 = "//frameworks/base/tools/aapt2",
156    android_jar = "//prebuilts/sdk/current:public/android.jar",
157    apex_compression_tool = "//system/apex/tools:apex_compression_tool",
158    apexer = "//system/apex/apexer",
159    avbtool = "//external/avb:avbtool",
160    conv_apex_manifest = "//system/apex/apexer:conv_apex_manifest",
161    dexdeps = "//dalvik/tools/dexdeps",  # tool input for gen_java_usedby_apex
162    e2fsdroid = "//external/e2fsprogs/contrib/android:e2fsdroid",
163    gen_java_usedby_apex = "//build/soong/scripts:gen_java_usedby_apex.sh",
164    gen_ndk_usedby_apex = "//build/soong/scripts:gen_ndk_usedby_apex.sh",
165    jsonmodify = "//build/soong/scripts:jsonmodify",
166    manifest_fixer = "//build/soong/scripts:manifest_fixer",
167    mke2fs = "//external/e2fsprogs/misc:mke2fs",
168    notice_generator = "//build/bazel/compliance/cmd:bazel_notice_gen",
169    readelf = "//prebuilts/clang/host/linux-x86:llvm-readelf",
170    resize2fs = "//external/e2fsprogs/resize:resize2fs",
171    sefcontext_compile = "//external/selinux/libselinux:sefcontext_compile",
172    soong_zip = "//build/soong/zip/cmd:soong_zip",
173)
174
175toolchain(
176    name = "apex_toolchain_def",
177    exec_compatible_with = [
178        "//build/bazel/platforms/arch:x86_64",
179        "//build/bazel/platforms/os:linux",
180    ],
181    target_compatible_with = [
182        "//build/bazel/platforms/os:android",
183    ],
184    toolchain = ":apex_toolchain",
185    toolchain_type = "//build/bazel/rules/apex:apex_toolchain_type",
186)
187
188apex_test_suite(
189    name = "apex_tests",
190)
191
192apex_aab_test_suite(
193    name = "apex_aab_tests",
194)
195
196apex_key_test_suite(
197    name = "apex_key_tests",
198)
199
200apex_mk_test_suite(
201    name = "apex_mk_tests",
202)
203
204filegroup(
205    name = "signapk_deploy_jar",
206    srcs = ["//build/make/tools/signapk:signapk_deploy.jar"],
207    visibility = ["//visibility:public"],
208)
209