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