blob: 4d273e4cb58398cfd295a951974c475c6d07f18c [file] [log] [blame]
Alex Humesky9f4c9e72021-03-18 01:32:40 -04001load("@rules_android//toolchains/android:toolchain.bzl", "android_toolchain")
2
Alex Humesky9f4c9e72021-03-18 01:32:40 -04003android_sdk(
4 name = "android_sdk",
Rupert Shuttleworth72eb91b2021-04-15 19:41:20 -04005 aapt = "//prebuilts/sdk/tools:linux/bin/aapt",
6 aapt2 = "//prebuilts/sdk/tools:linux/bin/aapt2",
Alex Humesky9f4c9e72021-03-18 01:32:40 -04007 adb = ":fail", # TODO: use system/core/adb ?
Rupert Shuttleworth72eb91b2021-04-15 19:41:20 -04008 aidl = "//prebuilts/sdk/tools:linux/bin/aidl",
Alex Humesky9f4c9e72021-03-18 01:32:40 -04009 android_jar = "30/public/android.jar",
10 apksigner = ":apksigner",
Romain Jobredeaux63030ba2021-07-20 13:34:46 +000011 dx = "//prebuilts/sdk/tools:dx", # TODO: add D8
Alex Humesky9f4c9e72021-03-18 01:32:40 -040012 framework_aidl = "30/public/framework.aidl",
Rupert Shuttleworth72eb91b2021-04-15 19:41:20 -040013 main_dex_classes = "//prebuilts/sdk/tools:mainDexClasses.rules",
Alex Humesky9f4c9e72021-03-18 01:32:40 -040014 main_dex_list_creator = ":fail",
15 proguard = ":fail", # TODO: add R8
16 shrinked_android_jar = "30/public/android.jar",
17 visibility = ["//visibility:public"],
Rupert Shuttleworth72eb91b2021-04-15 19:41:20 -040018 zipalign = "//prebuilts/sdk/tools:linux/bin/zipalign",
Alex Humesky9f4c9e72021-03-18 01:32:40 -040019)
20
21java_import(
22 name = "dx_jar_import",
Romain Jobredeaux63030ba2021-07-20 13:34:46 +000023 jars = ["//prebuilts/sdk/tools:lib/dx.jar"],
Alex Humesky9f4c9e72021-03-18 01:32:40 -040024 visibility = ["//visibility:public"],
25)
26
27java_binary(
28 name = "apksigner",
29 main_class = "com.android.apksigner.ApkSignerTool",
Rupert Shuttleworth72eb91b2021-04-15 19:41:20 -040030 runtime_deps = ["//prebuilts/sdk/tools:linux/lib/apksigner.jar"],
Alex Humesky9f4c9e72021-03-18 01:32:40 -040031)
32
33toolchain(
34 name = "android_sdk_tools",
35 exec_compatible_with = [
Alex Humesky2aba0942021-04-29 21:13:23 -040036 "//build/bazel/platforms/arch:x86_64",
37 "//build/bazel/platforms/os:linux",
Alex Humesky9f4c9e72021-03-18 01:32:40 -040038 ],
39 # TODO(b/175833893): This causes the toolchain to not be selected, so
40 # disable for now.
41 #target_compatible_with = [
Alex Humesky2aba0942021-04-29 21:13:23 -040042 # "//build/bazel/platforms/os:android",
Alex Humesky9f4c9e72021-03-18 01:32:40 -040043 #],
Alex Humesky2aba0942021-04-29 21:13:23 -040044 toolchain = ":android_sdk",
Alex Humesky9f4c9e72021-03-18 01:32:40 -040045 toolchain_type = "@rules_android//toolchains/android_sdk:toolchain_type",
46 visibility = ["//visibility:public"],
47)
48
49android_toolchain(
50 name = "android_default",
Rupert Shuttleworth72eb91b2021-04-15 19:41:20 -040051 aapt2 = "//prebuilts/sdk/tools:linux/bin/aapt2",
Alex Humesky9f4c9e72021-03-18 01:32:40 -040052 adb = ":fail",
Alex Humesky73bfc592021-06-25 16:38:32 -040053 android_archive_jar_optimization_inputs_validator = ":fail",
54 android_archive_manifest_package_validator = ":fail",
55 android_archive_packages_validator = ":fail",
Alex Humesky9f4c9e72021-03-18 01:32:40 -040056 android_kit = ":fail",
57 apk_to_bundle_tool = ":fail",
58 bundletool = ":fail",
59 data_binding_annotation_processor = ":compiler_annotation_processor",
60 jacocorunner = ":fail",
61 java_stub = ":fail",
62 jdeps_tool = ":fail",
Alex Humesky73bfc592021-06-25 16:38:32 -040063 proto_map_generator = ":fail",
Alex Humesky9f4c9e72021-03-18 01:32:40 -040064 testsupport = ":fail",
65)
66
67toolchain(
68 name = "android_default_toolchain",
69 toolchain = ":android_default",
70 toolchain_type = "@rules_android//toolchains/android:toolchain_type",
71)
72
73# The native version of android_binary specifies a different toolchain_type
74# from the Starlark rules, so it needs a separate toolchain to point
75# android_binary to the android_sdk.
76toolchain(
77 name = "android_sdk_tools_for_native_android_binary",
78 exec_compatible_with = [
Alex Humesky2aba0942021-04-29 21:13:23 -040079 "//build/bazel/platforms/arch:x86_64",
80 "//build/bazel/platforms/os:linux",
Alex Humesky9f4c9e72021-03-18 01:32:40 -040081 ],
Alex Humesky73bfc592021-06-25 16:38:32 -040082 # TODO(b/175833893): This causes the toolchain to not be selected, so
83 # disable for now.
84 #target_compatible_with = [
85 # "//build/bazel/platforms/os:android",
86 #],
Alex Humesky9f4c9e72021-03-18 01:32:40 -040087 toolchain = ":android_sdk",
88 toolchain_type = "@bazel_tools//tools/android:sdk_toolchain_type",
89 visibility = ["//visibility:public"],
90)
91
92# TODO: all_android_tools comes from Android remote tools which should be
93# put into AOSP instead of downloaded.
94java_plugin(
95 name = "compiler_annotation_processor",
96 generates_api = True,
97 processor_class = "android.databinding.annotationprocessor.ProcessDataBinding",
98 visibility = ["//visibility:public"],
99 deps = [
100 "@bazel_tools//src/tools/android/java/com/google/devtools/build/android:all_android_tools",
101 ],
102)
103
104# Stubs for tools dependencies that are currently unused.
105genrule(
106 name = "gen_fail",
107 outs = ["fail.sh"],
108 cmd = "echo 'exit 1' > $@",
109 executable = 1,
110)
111
112sh_binary(
113 name = "fail",
114 srcs = [":fail.sh"],
115)