| load("@rules_android//toolchains/android:toolchain.bzl", "android_toolchain") |
| |
| android_sdk( |
| name = "android_sdk", |
| aapt = "//prebuilts/sdk/tools:linux/bin/aapt", |
| aapt2 = "//prebuilts/sdk/tools:linux/bin/aapt2", |
| adb = ":fail", # TODO: use system/core/adb ? |
| aidl = "//prebuilts/sdk/tools:linux/bin/aidl", |
| android_jar = "30/public/android.jar", |
| apksigner = ":apksigner", |
| dx = "//prebuilts/sdk/tools:linux/bin/dx", # TODO: add D8 |
| framework_aidl = "30/public/framework.aidl", |
| main_dex_classes = "//prebuilts/sdk/tools:mainDexClasses.rules", |
| main_dex_list_creator = ":fail", |
| proguard = ":fail", # TODO: add R8 |
| shrinked_android_jar = "30/public/android.jar", |
| visibility = ["//visibility:public"], |
| zipalign = "//prebuilts/sdk/tools:linux/bin/zipalign", |
| ) |
| |
| java_import( |
| name = "dx_jar_import", |
| jars = ["//prebuilts/sdk/tools:linux/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"], |
| ) |
| |
| toolchain( |
| name = "android_sdk_tools", |
| exec_compatible_with = [ |
| "//build/bazel/platforms/arch:x86_64", |
| "//build/bazel/platforms/os:linux", |
| ], |
| # TODO(b/175833893): This causes the toolchain to not be selected, so |
| # disable for now. |
| #target_compatible_with = [ |
| # "//build/bazel/platforms/os:android", |
| #], |
| toolchain = ":android_sdk", |
| toolchain_type = "@rules_android//toolchains/android_sdk:toolchain_type", |
| visibility = ["//visibility:public"], |
| ) |
| |
| android_toolchain( |
| name = "android_default", |
| aapt2 = "//prebuilts/sdk/tools:linux/bin/aapt2", |
| adb = ":fail", |
| android_kit = ":fail", |
| apk_to_bundle_tool = ":fail", |
| bundletool = ":fail", |
| data_binding_annotation_processor = ":compiler_annotation_processor", |
| jacocorunner = ":fail", |
| java_stub = ":fail", |
| jdeps_tool = ":fail", |
| testsupport = ":fail", |
| ) |
| |
| toolchain( |
| name = "android_default_toolchain", |
| toolchain = ":android_default", |
| toolchain_type = "@rules_android//toolchains/android:toolchain_type", |
| ) |
| |
| # 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_tools_for_native_android_binary", |
| exec_compatible_with = [ |
| "//build/bazel/platforms/arch:x86_64", |
| "//build/bazel/platforms/os:linux", |
| ], |
| target_compatible_with = [ |
| "//build/bazel/platforms/os:android", |
| ], |
| toolchain = ":android_sdk", |
| toolchain_type = "@bazel_tools//tools/android:sdk_toolchain_type", |
| visibility = ["//visibility:public"], |
| ) |
| |
| # TODO: all_android_tools comes from Android remote tools which should be |
| # put into AOSP instead of downloaded. |
| 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", |
| ], |
| ) |
| |
| # Stubs for tools dependencies that are currently unused. |
| genrule( |
| name = "gen_fail", |
| outs = ["fail.sh"], |
| cmd = "echo 'exit 1' > $@", |
| executable = 1, |
| ) |
| |
| sh_binary( |
| name = "fail", |
| srcs = [":fail.sh"], |
| ) |