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