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