blob: 7a5312ebe989382e82d96f1b63fbff14c2972a9a [file] [log] [blame]
# Copyright 2018 The Bazel Authors. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Common tools needed by the mobile-install aspect defined as aspect attributes."""
load("//rules:visibility.bzl", "PROJECT_VISIBILITY")
load(":dependency_map.bzl", "versioned_deps")
visibility(PROJECT_VISIBILITY)
TOOL_ATTRS = dict(
# Target Attrs
# This library should not be versioned. It needs to be built with the same
# config that is used to build the app. Android binds the application to a
# concrete architecture during install time. If no libs are on the apk, it
# will select the most specific to the device is running. We want to use
# whatever the user builds as long as it is compatible. And since we push
# the native libs outside the apk to speed up transfer times, we need to
# use dummy libs.
_android_sdk = attr.label(
default = Label(
"//tools/android:android_jar",
),
allow_files = True,
cfg = "target",
),
_flags = attr.label(
default = Label(
"//rules/flags",
),
),
_studio_deployer = attr.label(
default = Label("//tools/android:apkdeployer_deploy.jar"),
allow_single_file = True,
cfg = "exec",
executable = True,
),
_mi_java8_legacy_dex = attr.label(
default = Label("//tools/android:java8_legacy_dex"),
allow_single_file = True,
cfg = "target",
),
# Host Attrs
_aapt2 = attr.label(
default = Label(
"@androidsdk//:aapt2_binary",
),
allow_files = True,
cfg = "exec",
executable = True,
),
_apk_signer = attr.label(
default = Label("@apksig//:apksigner_deploy.jar"),
allow_files = True,
cfg = "exec",
executable = True,
),
_desugar_java8 = attr.label(
default = Label("//tools/android:desugar_java8"),
allow_files = True,
cfg = "exec",
executable = True,
),
_desugared_lib_config = attr.label(
allow_single_file = True,
default = Label("//tools/android:full_desugar_jdk_libs_config_json"),
),
_dexmerger = attr.label(
cfg = "exec",
default = Label("//tools/android:dexmerger"),
executable = True,
),
_dexbuilder = attr.label(
cfg = "exec",
default = Label("//tools/android:dexbuilder"),
executable = True,
),
_host_java_runtime = attr.label(
default = Label("//tools/jdk:current_host_java_runtime"),
cfg = "exec",
),
_java_jdk = attr.label(
default = Label("//tools/jdk:current_java_runtime"),
allow_files = True,
cfg = "exec",
),
_java_toolchain = attr.label(
default = Label("//tools/jdk:current_java_toolchain"),
),
_resource_busybox = attr.label(
default = Label("//src/tools/java/com/google/devtools/build/android:ResourceProcessorBusyBox_deploy.jar"),
allow_files = True,
cfg = "exec",
executable = True,
),
_zipalign = attr.label(
default = Label(
"@androidsdk//:zipalign_binary",
),
allow_files = True,
cfg = "exec",
executable = True,
),
# Versioned Host Attrs
_android_kit = attr.label(
default = versioned_deps.android_kit.head,
allow_files = True,
cfg = "exec",
executable = True,
),
_desugar_dex_sharding = attr.label(
default = versioned_deps.desugar_dex_sharding.head,
allow_files = True,
cfg = "exec",
executable = True,
),
_deploy = attr.label(
default = versioned_deps.deploy.head,
allow_files = True,
cfg = "exec",
executable = True,
),
_deploy_info = attr.label(
default = versioned_deps.deploy_info.head,
allow_files = True,
cfg = "exec",
executable = True,
),
_jar_tool = attr.label(
default = versioned_deps.jar_tool.head,
allow_files = True,
cfg = "exec",
executable = True,
),
_mi_android_java_toolchain = attr.label(
default = Label("//tools/jdk:toolchain_android_only"),
),
_mi_java_toolchain = attr.label(
cfg = "exec",
default = Label("//tools/jdk:toolchain"),
),
_mi_host_javabase = attr.label(
default = Label("//tools/jdk:current_host_java_runtime"),
),
_res_v3_dummy_manifest = attr.label(
allow_single_file = True,
default = versioned_deps.res_v3_dummy_manifest.head,
),
_res_v3_dummy_r_txt = attr.label(
allow_single_file = True,
default = versioned_deps.res_v3_dummy_r_txt.head,
),
)