blob: 7b44b049e260cee5191f80763aa286ca268a664f [file] [log] [blame]
load("@rules_android//toolchains/android:toolchain.bzl", "android_toolchain")
load("//build/bazel/rules/java:import.bzl", "java_import")
load("//prebuilts/sdk:toolchains.bzl", "prebuilts_toolchain")
load("//build/bazel/rules/java:bootclasspath.bzl", "bootclasspath")
load("//build/bazel/rules/java:import.bzl", "java_import")
load("//prebuilts/sdk:toolchains.bzl", "prebuilts_toolchain")
prebuilts_toolchain(
android_sdk_toolchain_name = "android_sdk",
java_toolchain_name = "device_java_toolchain",
)
toolchain(
name = "device_java_toolchain_definition",
exec_compatible_with = ["//build/bazel_common_rules/platforms/os:linux"],
target_compatible_with = [
"//build/bazel_common_rules/platforms/os:android",
],
target_settings = [],
toolchain = ":device_java_toolchain",
toolchain_type = "@bazel_tools//tools/jdk:toolchain_type",
visibility = ["//visibility:public"],
)
toolchain(
name = "android_sdk_toolchain_definition",
exec_compatible_with = [
"//build/bazel_common_rules/platforms/os:linux",
],
target_compatible_with = [
# TODO(b/278596841): uncomment when DexArchiveAspect propagation into host/exec config is properly handled
# "//build/bazel_common_rules/platforms/os:android",
],
toolchain = ":android_sdk",
toolchain_type = "@rules_android//toolchains/android_sdk:toolchain_type",
visibility = ["//visibility:public"],
)
# The native version of android_binary specifies a different toolchain_type
# from the Starlark rules, so it needs a separate toolchain to point
# android_binary to the android_sdk.
toolchain(
name = "android_sdk_native_toolchain_definition",
exec_compatible_with = [
"//build/bazel_common_rules/platforms/os:linux",
],
target_compatible_with = [
# TODO(b/278596841): uncomment when DexArchiveAspect propagation into host/exec config is properly handled
# "//build/bazel_common_rules/platforms/os:android",
],
toolchain = ":android_sdk",
toolchain_type = "@bazel_tools//tools/android:sdk_toolchain_type",
visibility = ["//visibility:public"],
)
java_import(
name = "dx_jar_import",
jars = ["//prebuilts/sdk/tools:lib/dx.jar"],
visibility = ["//visibility:public"],
)
java_binary(
name = "apksigner",
main_class = "com.android.apksigner.ApkSignerTool",
runtime_deps = ["//prebuilts/sdk/tools:linux/lib/apksigner.jar"],
)
android_toolchain(
name = "android_default",
aapt2 = select({
"//build/bazel/product_config/config_settings:always_use_prebuilt_sdks": "//prebuilts/sdk/tools:aapt2",
"//conditions:default": "//frameworks/base/tools/aapt2",
}),
adb = ":fail",
android_archive_jar_optimization_inputs_validator = ":fail",
android_archive_packages_validator = ":fail",
android_kit = ":fail",
apk_to_bundle_tool = ":fail",
bundletool = ":fail",
bundletool_module_builder = ":gen_fail",
centralize_r_class_tool = ":fail",
data_binding_annotation_processor = ":compiler_annotation_processor",
jacocorunner = ":fail",
java_stub = ":fail",
jdeps_tool = ":fail",
merge_baseline_profiles_tool = ":fail",
object_method_rewriter = ":fail",
profgen = ":fail",
proto_map_generator = ":fail",
r8 = "//prebuilts/r8:r8_binary_deploy.jar",
resource_shrinker = ":fail",
sandboxed_sdk_toolbox = ":gen_fail",
testsupport = ":fail",
)
toolchain(
name = "android_default_toolchain",
toolchain = ":android_default",
toolchain_type = "@rules_android//toolchains/android:toolchain_type",
)
java_plugin(
name = "compiler_annotation_processor",
generates_api = True,
processor_class = "android.databinding.annotationprocessor.ProcessDataBinding",
visibility = ["//visibility:public"],
deps = [
"@bazel_tools//src/tools/android/java/com/google/devtools/build/android:all_android_tools",
],
)
java_import(
name = "core_lambda_stubs",
jars = ["//prebuilts/sdk/tools:core-lambda-stubs.jar"],
visibility = ["//visibility:public"],
)
# Stubs for tools dependencies that are currently unused.
genrule(
name = "gen_fail",
outs = ["fail.sh"],
cmd = "echo 'exit 1' > $@",
executable = 1,
tags = ["manual"],
)
sh_binary(
name = "fail",
srcs = [":fail.sh"],
)
genrule(
name = "gen_failed_android_jar",
outs = ["failed_android.jar"],
cmd = "exit 1 > $@",
tags = ["manual"],
)
genrule(
name = "gen_failed_framework_aidl",
outs = ["failed_framework.aidl"],
cmd = "exit 1 > $@",
tags = ["manual"],
)
bootclasspath(
name = "failed_bootclasspath",
)
genquery(
name = "java_toolchain_android_jar_deps",
expression = 'filter("android\\.jar$", kind("source file", deps(//prebuilts/sdk:device_java_toolchain)))',
scope = [
"//prebuilts/sdk:device_java_toolchain",
],
)
genquery(
name = "android_sdk_toolchain_android_jar_deps",
expression = 'filter("android\\.jar$", kind("source file", deps(//prebuilts/sdk:android_sdk)))',
scope = [
"//prebuilts/sdk:android_sdk",
],
)
genquery(
name = "java_toolchain_core_jar_deps",
expression = 'filter("core-for-system-modules\\.jar$", kind("source file", deps(//prebuilts/sdk:device_java_toolchain)))',
scope = [
"//prebuilts/sdk:device_java_toolchain",
],
)
genquery(
name = "android_sdk_toolchain_core_jar_deps",
expression = 'filter("core-for-system-modules\\.jar$", kind("source file", deps(//prebuilts/sdk:android_sdk)))',
scope = [
"//prebuilts/sdk:android_sdk",
],
)
genquery(
name = "android_sdk_toolchain_framework_aidl_deps",
expression = 'filter("framework\\.aidl$", kind("source file", deps(//prebuilts/sdk:android_sdk)))',
scope = [
"//prebuilts/sdk:android_sdk",
],
)
sh_test(
name = "toolchains_have_all_prebuilts",
size = "small",
srcs = ["java_toolchain_has_all_android_jars.sh"],
data = [
":android_sdk_toolchain_android_jar_deps",
":android_sdk_toolchain_core_jar_deps",
":android_sdk_toolchain_framework_aidl_deps",
":bp2build_all_srcs",
":java_toolchain_android_jar_deps",
":java_toolchain_core_jar_deps",
"//prebuilts/sdk/current:bp2build_all_srcs",
],
tags = [
"manual",
"no_windows",
],
deps = ["@bazel_tools//tools/bash/runfiles"],
)