xref: /aosp_15_r20/external/bazelbuild-rules_android/mobile_install/tools.bzl (revision 9e965d6fece27a77de5377433c2f7e6999b8cc0b)
1*9e965d6fSRomain Jobredeaux# Copyright 2018 The Bazel Authors. All rights reserved.
2*9e965d6fSRomain Jobredeaux#
3*9e965d6fSRomain Jobredeaux# Licensed under the Apache License, Version 2.0 (the "License");
4*9e965d6fSRomain Jobredeaux# you may not use this file except in compliance with the License.
5*9e965d6fSRomain Jobredeaux# You may obtain a copy of the License at
6*9e965d6fSRomain Jobredeaux#
7*9e965d6fSRomain Jobredeaux#    http://www.apache.org/licenses/LICENSE-2.0
8*9e965d6fSRomain Jobredeaux#
9*9e965d6fSRomain Jobredeaux# Unless required by applicable law or agreed to in writing, software
10*9e965d6fSRomain Jobredeaux# distributed under the License is distributed on an "AS IS" BASIS,
11*9e965d6fSRomain Jobredeaux# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*9e965d6fSRomain Jobredeaux# See the License for the specific language governing permissions and
13*9e965d6fSRomain Jobredeaux# limitations under the License.
14*9e965d6fSRomain Jobredeaux"""Tools needed by the mobile-install aspect defined as aspect attributes."""
15*9e965d6fSRomain Jobredeaux
16*9e965d6fSRomain Jobredeauxload(":dependency_map.bzl", "versioned_deps")
17*9e965d6fSRomain Jobredeaux
18*9e965d6fSRomain JobredeauxTOOL_ATTRS = dict(
19*9e965d6fSRomain Jobredeaux    # Target Attrs
20*9e965d6fSRomain Jobredeaux    # This library should not be versioned. It needs to be built with the same
21*9e965d6fSRomain Jobredeaux    # config that is used to build the app. Android binds the application to a
22*9e965d6fSRomain Jobredeaux    # concrete achitecture during install time. If no libs are on the apk, it
23*9e965d6fSRomain Jobredeaux    # will select the most specific to the device is running. We want to use
24*9e965d6fSRomain Jobredeaux    # whatever the user builds as long as it is compatible. And since we push
25*9e965d6fSRomain Jobredeaux    # the native libs outside the apk to speed up transfer times, we need to
26*9e965d6fSRomain Jobredeaux    # use dummy libs.
27*9e965d6fSRomain Jobredeaux    _android_sdk = attr.label(
28*9e965d6fSRomain Jobredeaux        default = Label(
29*9e965d6fSRomain Jobredeaux            "//tools/android:android_jar",
30*9e965d6fSRomain Jobredeaux        ),
31*9e965d6fSRomain Jobredeaux        allow_files = True,
32*9e965d6fSRomain Jobredeaux        cfg = "target",
33*9e965d6fSRomain Jobredeaux    ),
34*9e965d6fSRomain Jobredeaux    _flags = attr.label(
35*9e965d6fSRomain Jobredeaux        default = Label(
36*9e965d6fSRomain Jobredeaux            "//rules/flags",
37*9e965d6fSRomain Jobredeaux        ),
38*9e965d6fSRomain Jobredeaux    ),
39*9e965d6fSRomain Jobredeaux    _studio_deployer = attr.label(
40*9e965d6fSRomain Jobredeaux        default = "//tools/android:gen_fail", # TODO(#119): Studio deployer jar to be released
41*9e965d6fSRomain Jobredeaux        allow_single_file = True,
42*9e965d6fSRomain Jobredeaux        cfg = "exec",
43*9e965d6fSRomain Jobredeaux        executable = True,
44*9e965d6fSRomain Jobredeaux    ),
45*9e965d6fSRomain Jobredeaux    _mi_shell_dummy_native_libs = attr.label(
46*9e965d6fSRomain Jobredeaux        default = Label(
47*9e965d6fSRomain Jobredeaux            "//tools/android:gen_fail", # FIXME: Unused internally
48*9e965d6fSRomain Jobredeaux        ),
49*9e965d6fSRomain Jobredeaux        allow_single_file = True,
50*9e965d6fSRomain Jobredeaux        cfg = "target",
51*9e965d6fSRomain Jobredeaux    ),
52*9e965d6fSRomain Jobredeaux    _mi_shell_app = attr.label(
53*9e965d6fSRomain Jobredeaux        default = versioned_deps.mi_shell_app.head,
54*9e965d6fSRomain Jobredeaux        allow_files = True,
55*9e965d6fSRomain Jobredeaux        cfg = "target",
56*9e965d6fSRomain Jobredeaux        executable = True,
57*9e965d6fSRomain Jobredeaux    ),
58*9e965d6fSRomain Jobredeaux    _mi_java8_legacy_dex = attr.label(
59*9e965d6fSRomain Jobredeaux        default = Label("//tools/android:java8_legacy_dex"),
60*9e965d6fSRomain Jobredeaux        allow_single_file = True,
61*9e965d6fSRomain Jobredeaux        cfg = "target",
62*9e965d6fSRomain Jobredeaux    ),
63*9e965d6fSRomain Jobredeaux
64*9e965d6fSRomain Jobredeaux    # Host Attrs
65*9e965d6fSRomain Jobredeaux    _aapt2 = attr.label(
66*9e965d6fSRomain Jobredeaux        default = Label(
67*9e965d6fSRomain Jobredeaux            "@androidsdk//:aapt2_binary",
68*9e965d6fSRomain Jobredeaux        ),
69*9e965d6fSRomain Jobredeaux        allow_single_file = True,
70*9e965d6fSRomain Jobredeaux        cfg = "exec",
71*9e965d6fSRomain Jobredeaux        executable = True,
72*9e965d6fSRomain Jobredeaux    ),
73*9e965d6fSRomain Jobredeaux    _android_test_runner = attr.label(
74*9e965d6fSRomain Jobredeaux        default = Label(
75*9e965d6fSRomain Jobredeaux            "@bazel_tools//tools/jdk:TestRunner_deploy.jar",
76*9e965d6fSRomain Jobredeaux        ),
77*9e965d6fSRomain Jobredeaux        allow_single_file = True,
78*9e965d6fSRomain Jobredeaux        cfg = "exec",
79*9e965d6fSRomain Jobredeaux        executable = True,
80*9e965d6fSRomain Jobredeaux    ),
81*9e965d6fSRomain Jobredeaux    _apk_signer = attr.label(
82*9e965d6fSRomain Jobredeaux        default = Label("@androidsdk//:apksigner"),
83*9e965d6fSRomain Jobredeaux        allow_files = True,
84*9e965d6fSRomain Jobredeaux        cfg = "exec",
85*9e965d6fSRomain Jobredeaux        executable = True,
86*9e965d6fSRomain Jobredeaux    ),
87*9e965d6fSRomain Jobredeaux    _desugar_java8 = attr.label(
88*9e965d6fSRomain Jobredeaux        default = Label("//tools/android:desugar_java8"),
89*9e965d6fSRomain Jobredeaux        allow_files = True,
90*9e965d6fSRomain Jobredeaux        cfg = "exec",
91*9e965d6fSRomain Jobredeaux        executable = True,
92*9e965d6fSRomain Jobredeaux    ),
93*9e965d6fSRomain Jobredeaux    _d8 = attr.label(
94*9e965d6fSRomain Jobredeaux        default = Label("//tools/android:d8"),
95*9e965d6fSRomain Jobredeaux        allow_files = True,
96*9e965d6fSRomain Jobredeaux        cfg = "exec",
97*9e965d6fSRomain Jobredeaux        executable = True,
98*9e965d6fSRomain Jobredeaux    ),
99*9e965d6fSRomain Jobredeaux    _host_java_runtime = attr.label(
100*9e965d6fSRomain Jobredeaux        default = Label("//tools/jdk:current_host_java_runtime"),
101*9e965d6fSRomain Jobredeaux        cfg = "exec",
102*9e965d6fSRomain Jobredeaux    ),
103*9e965d6fSRomain Jobredeaux    _java_jdk = attr.label(
104*9e965d6fSRomain Jobredeaux        default = Label("//tools/jdk:current_java_runtime"),
105*9e965d6fSRomain Jobredeaux        allow_files = True,
106*9e965d6fSRomain Jobredeaux        cfg = "exec",
107*9e965d6fSRomain Jobredeaux    ),
108*9e965d6fSRomain Jobredeaux    _resource_busybox = attr.label(
109*9e965d6fSRomain Jobredeaux        default = Label("@bazel_tools//src/tools/android/java/com/google/devtools/build/android:ResourceProcessorBusyBox_deploy.jar"),
110*9e965d6fSRomain Jobredeaux        allow_files = True,
111*9e965d6fSRomain Jobredeaux        cfg = "exec",
112*9e965d6fSRomain Jobredeaux        executable = True,
113*9e965d6fSRomain Jobredeaux    ),
114*9e965d6fSRomain Jobredeaux    _zipalign = attr.label(
115*9e965d6fSRomain Jobredeaux        default = Label(
116*9e965d6fSRomain Jobredeaux            "@androidsdk//:zipalign_binary",
117*9e965d6fSRomain Jobredeaux        ),
118*9e965d6fSRomain Jobredeaux        allow_single_file = True,
119*9e965d6fSRomain Jobredeaux        cfg = "exec",
120*9e965d6fSRomain Jobredeaux        executable = True,
121*9e965d6fSRomain Jobredeaux    ),
122*9e965d6fSRomain Jobredeaux
123*9e965d6fSRomain Jobredeaux
124*9e965d6fSRomain Jobredeaux    # Versioned Host Attrs
125*9e965d6fSRomain Jobredeaux    _android_kit = attr.label(
126*9e965d6fSRomain Jobredeaux        default = versioned_deps.android_kit.head,
127*9e965d6fSRomain Jobredeaux        allow_files = True,
128*9e965d6fSRomain Jobredeaux        cfg = "exec",
129*9e965d6fSRomain Jobredeaux        executable = True,
130*9e965d6fSRomain Jobredeaux    ),
131*9e965d6fSRomain Jobredeaux    _deploy = attr.label(
132*9e965d6fSRomain Jobredeaux        default = versioned_deps.deploy.head,
133*9e965d6fSRomain Jobredeaux        allow_files = True,
134*9e965d6fSRomain Jobredeaux        cfg = "exec",
135*9e965d6fSRomain Jobredeaux        executable = True,
136*9e965d6fSRomain Jobredeaux    ),
137*9e965d6fSRomain Jobredeaux    _deploy_info = attr.label(
138*9e965d6fSRomain Jobredeaux        default = versioned_deps.deploy_info.head,
139*9e965d6fSRomain Jobredeaux        allow_files = True,
140*9e965d6fSRomain Jobredeaux        cfg = "exec",
141*9e965d6fSRomain Jobredeaux        executable = True,
142*9e965d6fSRomain Jobredeaux    ),
143*9e965d6fSRomain Jobredeaux    _jar_tool = attr.label(
144*9e965d6fSRomain Jobredeaux        default = versioned_deps.jar_tool.head,
145*9e965d6fSRomain Jobredeaux        allow_files = True,
146*9e965d6fSRomain Jobredeaux        cfg = "exec",
147*9e965d6fSRomain Jobredeaux        executable = True,
148*9e965d6fSRomain Jobredeaux    ),
149*9e965d6fSRomain Jobredeaux    _make_sync = attr.label(
150*9e965d6fSRomain Jobredeaux        default = versioned_deps.make_sync.head,
151*9e965d6fSRomain Jobredeaux        allow_files = True,
152*9e965d6fSRomain Jobredeaux        cfg = "exec",
153*9e965d6fSRomain Jobredeaux        executable = True,
154*9e965d6fSRomain Jobredeaux    ),
155*9e965d6fSRomain Jobredeaux    _merge_syncs = attr.label(
156*9e965d6fSRomain Jobredeaux        default = versioned_deps.merge_syncs.head,
157*9e965d6fSRomain Jobredeaux        allow_files = True,
158*9e965d6fSRomain Jobredeaux        cfg = "exec",
159*9e965d6fSRomain Jobredeaux        executable = True,
160*9e965d6fSRomain Jobredeaux    ),
161*9e965d6fSRomain Jobredeaux    _mi_android_java_toolchain = attr.label(
162*9e965d6fSRomain Jobredeaux        default = Label("//tools/jdk:toolchain_android_only"),
163*9e965d6fSRomain Jobredeaux    ),
164*9e965d6fSRomain Jobredeaux    _mi_java_toolchain = attr.label(
165*9e965d6fSRomain Jobredeaux        cfg = "exec",
166*9e965d6fSRomain Jobredeaux        default = Label("//tools/jdk:toolchain"),
167*9e965d6fSRomain Jobredeaux    ),
168*9e965d6fSRomain Jobredeaux    _mi_host_javabase = attr.label(
169*9e965d6fSRomain Jobredeaux        default = Label("//tools/jdk:current_host_java_runtime"),
170*9e965d6fSRomain Jobredeaux    ),
171*9e965d6fSRomain Jobredeaux    _pack_dexes = attr.label(
172*9e965d6fSRomain Jobredeaux        default = versioned_deps.pack_dexes.head,
173*9e965d6fSRomain Jobredeaux        allow_files = True,
174*9e965d6fSRomain Jobredeaux        cfg = "exec",
175*9e965d6fSRomain Jobredeaux        executable = True,
176*9e965d6fSRomain Jobredeaux    ),
177*9e965d6fSRomain Jobredeaux    _pack_generic = attr.label(
178*9e965d6fSRomain Jobredeaux        default = versioned_deps.pack_generic.head,
179*9e965d6fSRomain Jobredeaux        allow_files = True,
180*9e965d6fSRomain Jobredeaux        cfg = "exec",
181*9e965d6fSRomain Jobredeaux        executable = True,
182*9e965d6fSRomain Jobredeaux    ),
183*9e965d6fSRomain Jobredeaux    _res_v3_dummy_manifest = attr.label(
184*9e965d6fSRomain Jobredeaux        allow_single_file = True,
185*9e965d6fSRomain Jobredeaux        default = versioned_deps.res_v3_dummy_manifest.head,
186*9e965d6fSRomain Jobredeaux    ),
187*9e965d6fSRomain Jobredeaux    _res_v3_dummy_r_txt = attr.label(
188*9e965d6fSRomain Jobredeaux        allow_single_file = True,
189*9e965d6fSRomain Jobredeaux        default = versioned_deps.res_v3_dummy_r_txt.head,
190*9e965d6fSRomain Jobredeaux    ),
191*9e965d6fSRomain Jobredeaux    _resource_extractor = attr.label(
192*9e965d6fSRomain Jobredeaux        allow_single_file = True,
193*9e965d6fSRomain Jobredeaux        cfg = "exec",
194*9e965d6fSRomain Jobredeaux        default = versioned_deps.resource_extractor.head,
195*9e965d6fSRomain Jobredeaux        executable = True,
196*9e965d6fSRomain Jobredeaux    ),
197*9e965d6fSRomain Jobredeaux    _sync_merger = attr.label(
198*9e965d6fSRomain Jobredeaux        default = versioned_deps.sync_merger.head,
199*9e965d6fSRomain Jobredeaux        allow_files = True,
200*9e965d6fSRomain Jobredeaux        cfg = "exec",
201*9e965d6fSRomain Jobredeaux        executable = True,
202*9e965d6fSRomain Jobredeaux    ),
203*9e965d6fSRomain Jobredeaux
204*9e965d6fSRomain Jobredeaux)
205