blob: 38fd9ed40e16c8d497ea523a2773302fb80b2838 [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
Sam Delmericoa82b9452022-02-17 19:04:30 +000049java_import(
50 name = "public_current_android_sdk_java_import",
51 jars = ["//prebuilts/sdk/current:public/android.jar"],
52 visibility = ["//visibility:public"],
Sam Delmericoc51c0002022-03-24 19:16:02 +000053 neverlink = True,
Sam Delmericoa82b9452022-02-17 19:04:30 +000054)
55
Alex Humesky9f4c9e72021-03-18 01:32:40 -040056android_toolchain(
57 name = "android_default",
Rupert Shuttleworth72eb91b2021-04-15 19:41:20 -040058 aapt2 = "//prebuilts/sdk/tools:linux/bin/aapt2",
Alex Humesky9f4c9e72021-03-18 01:32:40 -040059 adb = ":fail",
Alex Humesky73bfc592021-06-25 16:38:32 -040060 android_archive_jar_optimization_inputs_validator = ":fail",
61 android_archive_manifest_package_validator = ":fail",
62 android_archive_packages_validator = ":fail",
Alex Humesky9f4c9e72021-03-18 01:32:40 -040063 android_kit = ":fail",
64 apk_to_bundle_tool = ":fail",
65 bundletool = ":fail",
66 data_binding_annotation_processor = ":compiler_annotation_processor",
67 jacocorunner = ":fail",
68 java_stub = ":fail",
69 jdeps_tool = ":fail",
Alex Humesky73bfc592021-06-25 16:38:32 -040070 proto_map_generator = ":fail",
Alex Humesky9f4c9e72021-03-18 01:32:40 -040071 testsupport = ":fail",
72)
73
74toolchain(
75 name = "android_default_toolchain",
76 toolchain = ":android_default",
77 toolchain_type = "@rules_android//toolchains/android:toolchain_type",
78)
79
80# The native version of android_binary specifies a different toolchain_type
81# from the Starlark rules, so it needs a separate toolchain to point
82# android_binary to the android_sdk.
83toolchain(
84 name = "android_sdk_tools_for_native_android_binary",
85 exec_compatible_with = [
Alex Humesky2aba0942021-04-29 21:13:23 -040086 "//build/bazel/platforms/arch:x86_64",
87 "//build/bazel/platforms/os:linux",
Alex Humesky9f4c9e72021-03-18 01:32:40 -040088 ],
Alex Humesky73bfc592021-06-25 16:38:32 -040089 # TODO(b/175833893): This causes the toolchain to not be selected, so
90 # disable for now.
91 #target_compatible_with = [
92 # "//build/bazel/platforms/os:android",
93 #],
Alex Humesky9f4c9e72021-03-18 01:32:40 -040094 toolchain = ":android_sdk",
95 toolchain_type = "@bazel_tools//tools/android:sdk_toolchain_type",
96 visibility = ["//visibility:public"],
97)
98
99# TODO: all_android_tools comes from Android remote tools which should be
100# put into AOSP instead of downloaded.
101java_plugin(
102 name = "compiler_annotation_processor",
103 generates_api = True,
104 processor_class = "android.databinding.annotationprocessor.ProcessDataBinding",
105 visibility = ["//visibility:public"],
106 deps = [
107 "@bazel_tools//src/tools/android/java/com/google/devtools/build/android:all_android_tools",
108 ],
109)
110
111# Stubs for tools dependencies that are currently unused.
112genrule(
113 name = "gen_fail",
114 outs = ["fail.sh"],
115 cmd = "echo 'exit 1' > $@",
116 executable = 1,
117)
118
119sh_binary(
120 name = "fail",
121 srcs = [":fail.sh"],
122)