xref: /aosp_15_r20/prebuilts/sdk/BUILD.bazel (revision 344a7f5ef16c479e7a7f54ee6567a9d112f9e72b)
1*344a7f5eSAndroid Build Coastguard Workerload("@rules_android//toolchains/android:toolchain.bzl", "android_toolchain")
2*344a7f5eSAndroid Build Coastguard Workerload("//build/bazel/rules/java:import.bzl", "java_import")
3*344a7f5eSAndroid Build Coastguard Workerload("//prebuilts/sdk:toolchains.bzl", "prebuilts_toolchain")
4*344a7f5eSAndroid Build Coastguard Workerload("//build/bazel/rules/java:bootclasspath.bzl", "bootclasspath")
5*344a7f5eSAndroid Build Coastguard Workerload("//build/bazel/rules/java:import.bzl", "java_import")
6*344a7f5eSAndroid Build Coastguard Workerload("//prebuilts/sdk:toolchains.bzl", "prebuilts_toolchain")
7*344a7f5eSAndroid Build Coastguard Worker
8*344a7f5eSAndroid Build Coastguard Workerprebuilts_toolchain(
9*344a7f5eSAndroid Build Coastguard Worker    android_sdk_toolchain_name = "android_sdk",
10*344a7f5eSAndroid Build Coastguard Worker    java_toolchain_name = "device_java_toolchain",
11*344a7f5eSAndroid Build Coastguard Worker)
12*344a7f5eSAndroid Build Coastguard Worker
13*344a7f5eSAndroid Build Coastguard Workertoolchain(
14*344a7f5eSAndroid Build Coastguard Worker    name = "device_java_toolchain_definition",
15*344a7f5eSAndroid Build Coastguard Worker    exec_compatible_with = ["//build/bazel_common_rules/platforms/os:linux"],
16*344a7f5eSAndroid Build Coastguard Worker    target_compatible_with = [
17*344a7f5eSAndroid Build Coastguard Worker        "//build/bazel_common_rules/platforms/os:android",
18*344a7f5eSAndroid Build Coastguard Worker    ],
19*344a7f5eSAndroid Build Coastguard Worker    target_settings = [],
20*344a7f5eSAndroid Build Coastguard Worker    toolchain = ":device_java_toolchain",
21*344a7f5eSAndroid Build Coastguard Worker    toolchain_type = "@bazel_tools//tools/jdk:toolchain_type",
22*344a7f5eSAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
23*344a7f5eSAndroid Build Coastguard Worker)
24*344a7f5eSAndroid Build Coastguard Worker
25*344a7f5eSAndroid Build Coastguard Workertoolchain(
26*344a7f5eSAndroid Build Coastguard Worker    name = "android_sdk_toolchain_definition",
27*344a7f5eSAndroid Build Coastguard Worker    exec_compatible_with = [
28*344a7f5eSAndroid Build Coastguard Worker        "//build/bazel_common_rules/platforms/os:linux",
29*344a7f5eSAndroid Build Coastguard Worker    ],
30*344a7f5eSAndroid Build Coastguard Worker    target_compatible_with = [
31*344a7f5eSAndroid Build Coastguard Worker        # TODO(b/278596841): uncomment when DexArchiveAspect propagation into host/exec config is properly handled
32*344a7f5eSAndroid Build Coastguard Worker        # "//build/bazel_common_rules/platforms/os:android",
33*344a7f5eSAndroid Build Coastguard Worker    ],
34*344a7f5eSAndroid Build Coastguard Worker    toolchain = ":android_sdk",
35*344a7f5eSAndroid Build Coastguard Worker    toolchain_type = "@rules_android//toolchains/android_sdk:toolchain_type",
36*344a7f5eSAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
37*344a7f5eSAndroid Build Coastguard Worker)
38*344a7f5eSAndroid Build Coastguard Worker
39*344a7f5eSAndroid Build Coastguard Worker# The native version of android_binary specifies a different toolchain_type
40*344a7f5eSAndroid Build Coastguard Worker# from the Starlark rules, so it needs a separate toolchain to point
41*344a7f5eSAndroid Build Coastguard Worker# android_binary to the android_sdk.
42*344a7f5eSAndroid Build Coastguard Workertoolchain(
43*344a7f5eSAndroid Build Coastguard Worker    name = "android_sdk_native_toolchain_definition",
44*344a7f5eSAndroid Build Coastguard Worker    exec_compatible_with = [
45*344a7f5eSAndroid Build Coastguard Worker        "//build/bazel_common_rules/platforms/os:linux",
46*344a7f5eSAndroid Build Coastguard Worker    ],
47*344a7f5eSAndroid Build Coastguard Worker    target_compatible_with = [
48*344a7f5eSAndroid Build Coastguard Worker        # TODO(b/278596841): uncomment when DexArchiveAspect propagation into host/exec config is properly handled
49*344a7f5eSAndroid Build Coastguard Worker        # "//build/bazel_common_rules/platforms/os:android",
50*344a7f5eSAndroid Build Coastguard Worker    ],
51*344a7f5eSAndroid Build Coastguard Worker    toolchain = ":android_sdk",
52*344a7f5eSAndroid Build Coastguard Worker    toolchain_type = "@bazel_tools//tools/android:sdk_toolchain_type",
53*344a7f5eSAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
54*344a7f5eSAndroid Build Coastguard Worker)
55*344a7f5eSAndroid Build Coastguard Worker
56*344a7f5eSAndroid Build Coastguard Workerjava_import(
57*344a7f5eSAndroid Build Coastguard Worker    name = "dx_jar_import",
58*344a7f5eSAndroid Build Coastguard Worker    jars = ["//prebuilts/sdk/tools:lib/dx.jar"],
59*344a7f5eSAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
60*344a7f5eSAndroid Build Coastguard Worker)
61*344a7f5eSAndroid Build Coastguard Worker
62*344a7f5eSAndroid Build Coastguard Workerjava_binary(
63*344a7f5eSAndroid Build Coastguard Worker    name = "apksigner",
64*344a7f5eSAndroid Build Coastguard Worker    main_class = "com.android.apksigner.ApkSignerTool",
65*344a7f5eSAndroid Build Coastguard Worker    runtime_deps = ["//prebuilts/sdk/tools:linux/lib/apksigner.jar"],
66*344a7f5eSAndroid Build Coastguard Worker)
67*344a7f5eSAndroid Build Coastguard Worker
68*344a7f5eSAndroid Build Coastguard Workerandroid_toolchain(
69*344a7f5eSAndroid Build Coastguard Worker    name = "android_default",
70*344a7f5eSAndroid Build Coastguard Worker    aapt2 = select({
71*344a7f5eSAndroid Build Coastguard Worker        "//build/bazel/product_config/config_settings:always_use_prebuilt_sdks": "//prebuilts/sdk/tools:aapt2",
72*344a7f5eSAndroid Build Coastguard Worker        "//conditions:default": "//frameworks/base/tools/aapt2",
73*344a7f5eSAndroid Build Coastguard Worker    }),
74*344a7f5eSAndroid Build Coastguard Worker    adb = ":fail",
75*344a7f5eSAndroid Build Coastguard Worker    android_archive_jar_optimization_inputs_validator = ":fail",
76*344a7f5eSAndroid Build Coastguard Worker    android_archive_packages_validator = ":fail",
77*344a7f5eSAndroid Build Coastguard Worker    android_kit = ":fail",
78*344a7f5eSAndroid Build Coastguard Worker    apk_to_bundle_tool = ":fail",
79*344a7f5eSAndroid Build Coastguard Worker    bundletool = ":fail",
80*344a7f5eSAndroid Build Coastguard Worker    bundletool_module_builder = ":gen_fail",
81*344a7f5eSAndroid Build Coastguard Worker    centralize_r_class_tool = ":fail",
82*344a7f5eSAndroid Build Coastguard Worker    data_binding_annotation_processor = ":compiler_annotation_processor",
83*344a7f5eSAndroid Build Coastguard Worker    jacocorunner = ":fail",
84*344a7f5eSAndroid Build Coastguard Worker    java_stub = ":fail",
85*344a7f5eSAndroid Build Coastguard Worker    jdeps_tool = ":fail",
86*344a7f5eSAndroid Build Coastguard Worker    merge_baseline_profiles_tool = ":fail",
87*344a7f5eSAndroid Build Coastguard Worker    object_method_rewriter = ":fail",
88*344a7f5eSAndroid Build Coastguard Worker    profgen = ":fail",
89*344a7f5eSAndroid Build Coastguard Worker    proto_map_generator = ":fail",
90*344a7f5eSAndroid Build Coastguard Worker    r8 = "//prebuilts/r8:r8_binary_deploy.jar",
91*344a7f5eSAndroid Build Coastguard Worker    resource_shrinker = ":fail",
92*344a7f5eSAndroid Build Coastguard Worker    sandboxed_sdk_toolbox = ":gen_fail",
93*344a7f5eSAndroid Build Coastguard Worker    testsupport = ":fail",
94*344a7f5eSAndroid Build Coastguard Worker)
95*344a7f5eSAndroid Build Coastguard Worker
96*344a7f5eSAndroid Build Coastguard Workertoolchain(
97*344a7f5eSAndroid Build Coastguard Worker    name = "android_default_toolchain",
98*344a7f5eSAndroid Build Coastguard Worker    toolchain = ":android_default",
99*344a7f5eSAndroid Build Coastguard Worker    toolchain_type = "@rules_android//toolchains/android:toolchain_type",
100*344a7f5eSAndroid Build Coastguard Worker)
101*344a7f5eSAndroid Build Coastguard Worker
102*344a7f5eSAndroid Build Coastguard Workerjava_plugin(
103*344a7f5eSAndroid Build Coastguard Worker    name = "compiler_annotation_processor",
104*344a7f5eSAndroid Build Coastguard Worker    generates_api = True,
105*344a7f5eSAndroid Build Coastguard Worker    processor_class = "android.databinding.annotationprocessor.ProcessDataBinding",
106*344a7f5eSAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
107*344a7f5eSAndroid Build Coastguard Worker    deps = [
108*344a7f5eSAndroid Build Coastguard Worker        "@bazel_tools//src/tools/android/java/com/google/devtools/build/android:all_android_tools",
109*344a7f5eSAndroid Build Coastguard Worker    ],
110*344a7f5eSAndroid Build Coastguard Worker)
111*344a7f5eSAndroid Build Coastguard Worker
112*344a7f5eSAndroid Build Coastguard Workerjava_import(
113*344a7f5eSAndroid Build Coastguard Worker    name = "core_lambda_stubs",
114*344a7f5eSAndroid Build Coastguard Worker    jars = ["//prebuilts/sdk/tools:core-lambda-stubs.jar"],
115*344a7f5eSAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
116*344a7f5eSAndroid Build Coastguard Worker)
117*344a7f5eSAndroid Build Coastguard Worker
118*344a7f5eSAndroid Build Coastguard Worker# Stubs for tools dependencies that are currently unused.
119*344a7f5eSAndroid Build Coastguard Workergenrule(
120*344a7f5eSAndroid Build Coastguard Worker    name = "gen_fail",
121*344a7f5eSAndroid Build Coastguard Worker    outs = ["fail.sh"],
122*344a7f5eSAndroid Build Coastguard Worker    cmd = "echo 'exit 1' > $@",
123*344a7f5eSAndroid Build Coastguard Worker    executable = 1,
124*344a7f5eSAndroid Build Coastguard Worker    tags = ["manual"],
125*344a7f5eSAndroid Build Coastguard Worker)
126*344a7f5eSAndroid Build Coastguard Worker
127*344a7f5eSAndroid Build Coastguard Workersh_binary(
128*344a7f5eSAndroid Build Coastguard Worker    name = "fail",
129*344a7f5eSAndroid Build Coastguard Worker    srcs = [":fail.sh"],
130*344a7f5eSAndroid Build Coastguard Worker)
131*344a7f5eSAndroid Build Coastguard Worker
132*344a7f5eSAndroid Build Coastguard Workergenrule(
133*344a7f5eSAndroid Build Coastguard Worker    name = "gen_failed_android_jar",
134*344a7f5eSAndroid Build Coastguard Worker    outs = ["failed_android.jar"],
135*344a7f5eSAndroid Build Coastguard Worker    cmd = "exit 1 > $@",
136*344a7f5eSAndroid Build Coastguard Worker    tags = ["manual"],
137*344a7f5eSAndroid Build Coastguard Worker)
138*344a7f5eSAndroid Build Coastguard Worker
139*344a7f5eSAndroid Build Coastguard Workergenrule(
140*344a7f5eSAndroid Build Coastguard Worker    name = "gen_failed_framework_aidl",
141*344a7f5eSAndroid Build Coastguard Worker    outs = ["failed_framework.aidl"],
142*344a7f5eSAndroid Build Coastguard Worker    cmd = "exit 1 > $@",
143*344a7f5eSAndroid Build Coastguard Worker    tags = ["manual"],
144*344a7f5eSAndroid Build Coastguard Worker)
145*344a7f5eSAndroid Build Coastguard Worker
146*344a7f5eSAndroid Build Coastguard Workerbootclasspath(
147*344a7f5eSAndroid Build Coastguard Worker    name = "failed_bootclasspath",
148*344a7f5eSAndroid Build Coastguard Worker)
149*344a7f5eSAndroid Build Coastguard Worker
150*344a7f5eSAndroid Build Coastguard Workergenquery(
151*344a7f5eSAndroid Build Coastguard Worker    name = "java_toolchain_android_jar_deps",
152*344a7f5eSAndroid Build Coastguard Worker    expression = 'filter("android\\.jar$", kind("source file", deps(//prebuilts/sdk:device_java_toolchain)))',
153*344a7f5eSAndroid Build Coastguard Worker    scope = [
154*344a7f5eSAndroid Build Coastguard Worker        "//prebuilts/sdk:device_java_toolchain",
155*344a7f5eSAndroid Build Coastguard Worker    ],
156*344a7f5eSAndroid Build Coastguard Worker)
157*344a7f5eSAndroid Build Coastguard Worker
158*344a7f5eSAndroid Build Coastguard Workergenquery(
159*344a7f5eSAndroid Build Coastguard Worker    name = "android_sdk_toolchain_android_jar_deps",
160*344a7f5eSAndroid Build Coastguard Worker    expression = 'filter("android\\.jar$", kind("source file", deps(//prebuilts/sdk:android_sdk)))',
161*344a7f5eSAndroid Build Coastguard Worker    scope = [
162*344a7f5eSAndroid Build Coastguard Worker        "//prebuilts/sdk:android_sdk",
163*344a7f5eSAndroid Build Coastguard Worker    ],
164*344a7f5eSAndroid Build Coastguard Worker)
165*344a7f5eSAndroid Build Coastguard Worker
166*344a7f5eSAndroid Build Coastguard Workergenquery(
167*344a7f5eSAndroid Build Coastguard Worker    name = "java_toolchain_core_jar_deps",
168*344a7f5eSAndroid Build Coastguard Worker    expression = 'filter("core-for-system-modules\\.jar$", kind("source file", deps(//prebuilts/sdk:device_java_toolchain)))',
169*344a7f5eSAndroid Build Coastguard Worker    scope = [
170*344a7f5eSAndroid Build Coastguard Worker        "//prebuilts/sdk:device_java_toolchain",
171*344a7f5eSAndroid Build Coastguard Worker    ],
172*344a7f5eSAndroid Build Coastguard Worker)
173*344a7f5eSAndroid Build Coastguard Worker
174*344a7f5eSAndroid Build Coastguard Workergenquery(
175*344a7f5eSAndroid Build Coastguard Worker    name = "android_sdk_toolchain_core_jar_deps",
176*344a7f5eSAndroid Build Coastguard Worker    expression = 'filter("core-for-system-modules\\.jar$", kind("source file", deps(//prebuilts/sdk:android_sdk)))',
177*344a7f5eSAndroid Build Coastguard Worker    scope = [
178*344a7f5eSAndroid Build Coastguard Worker        "//prebuilts/sdk:android_sdk",
179*344a7f5eSAndroid Build Coastguard Worker    ],
180*344a7f5eSAndroid Build Coastguard Worker)
181*344a7f5eSAndroid Build Coastguard Worker
182*344a7f5eSAndroid Build Coastguard Workergenquery(
183*344a7f5eSAndroid Build Coastguard Worker    name = "android_sdk_toolchain_framework_aidl_deps",
184*344a7f5eSAndroid Build Coastguard Worker    expression = 'filter("framework\\.aidl$", kind("source file", deps(//prebuilts/sdk:android_sdk)))',
185*344a7f5eSAndroid Build Coastguard Worker    scope = [
186*344a7f5eSAndroid Build Coastguard Worker        "//prebuilts/sdk:android_sdk",
187*344a7f5eSAndroid Build Coastguard Worker    ],
188*344a7f5eSAndroid Build Coastguard Worker)
189*344a7f5eSAndroid Build Coastguard Worker
190*344a7f5eSAndroid Build Coastguard Workersh_test(
191*344a7f5eSAndroid Build Coastguard Worker    name = "toolchains_have_all_prebuilts",
192*344a7f5eSAndroid Build Coastguard Worker    size = "small",
193*344a7f5eSAndroid Build Coastguard Worker    srcs = ["java_toolchain_has_all_android_jars.sh"],
194*344a7f5eSAndroid Build Coastguard Worker    data = [
195*344a7f5eSAndroid Build Coastguard Worker        ":android_sdk_toolchain_android_jar_deps",
196*344a7f5eSAndroid Build Coastguard Worker        ":android_sdk_toolchain_core_jar_deps",
197*344a7f5eSAndroid Build Coastguard Worker        ":android_sdk_toolchain_framework_aidl_deps",
198*344a7f5eSAndroid Build Coastguard Worker        ":bp2build_all_srcs",
199*344a7f5eSAndroid Build Coastguard Worker        ":java_toolchain_android_jar_deps",
200*344a7f5eSAndroid Build Coastguard Worker        ":java_toolchain_core_jar_deps",
201*344a7f5eSAndroid Build Coastguard Worker        "//prebuilts/sdk/current:bp2build_all_srcs",
202*344a7f5eSAndroid Build Coastguard Worker    ],
203*344a7f5eSAndroid Build Coastguard Worker    tags = [
204*344a7f5eSAndroid Build Coastguard Worker        "manual",
205*344a7f5eSAndroid Build Coastguard Worker        "no_windows",
206*344a7f5eSAndroid Build Coastguard Worker    ],
207*344a7f5eSAndroid Build Coastguard Worker    deps = ["@bazel_tools//tools/bash/runfiles"],
208*344a7f5eSAndroid Build Coastguard Worker)
209