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