blob: 1e0e9caf0a2469e64a70de88134c28a979082d73 [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.
"""Rules for importing external Android Archives (AARs).
Usage:
# In WORKSPACE
load("@bazel_tools//tools/build_defs/repo:android.bzl", "aar_import_external", "aar_maven_import_external")
# Specify the URL directly:
aar_import_external(
name = "com_android_support_preference_v14_25_1_0", # required
licenses = ["notice"], # required
aar_urls = [ # required
"https://dl.google.com/dl/android/maven2/com/android/support/preference-v14/25.1.0/preference-v14-25.1.0.aar"
],
aar_sha256 = "442473fe5c395ebef26c14eb01d17ceda33ad207a4cc23a32a2ad95b87edfabb", # optional or empty string
deps = [ # optional or empty list
"@com_android_support_recyclerview_v7_25_1_0//aar",
"@com_android_support_appcompat_v7_25_1_0//aar",
"@com_android_support_preference_v7_25_1_0//aar",
"@com_android_support_support_v4_25_1_0//aar",
],
)
# Or, specify the artifact coordinate:
aar_maven_import_external(
name = "com_android_support_preference_v14_25_1_0", # required
artifact = "com.android.support.test:preference-v14:25.1.0", # required
sha256 = "442473fe5c395ebef26c14eb01d17ceda33ad207a4cc23a32a2ad95b87edfabb" # optional or empty string
licenses = ["notice"], # required
server_urls = ["https://maven.google.com"], # required
deps = [ # optional or empty list
"@com_android_support_recyclerview_v7_25_1_0//aar",
"@com_android_support_appcompat_v7_25_1_0//aar",
"@com_android_support_preference_v7_25_1_0//aar",
"@com_android_support_support_v4_25_1_0//aar",
],
)
# In BUILD.bazel
android_library(
name = "foo",
srcs = [...],
deps = [
"@com_android_support_preference_v14_25_1_0//aar",
],
)
"""
load(":jvm.bzl", "convert_artifact_coordinate_to_urls", "jvm_import_external")
def aar_import_external(aar_sha256, aar_urls, **kwargs):
jvm_import_external(
rule_name = "aar_import",
rule_metadata = {
"extension": "aar",
"import_attr": "aar = %s",
},
artifact_sha256 = aar_sha256,
artifact_urls = aar_urls,
**kwargs
)
def aar_maven_import_external(artifact, server_urls, aar_sha256 = "", **kwargs):
aar_import_external(
aar_sha256 = aar_sha256,
aar_urls = convert_artifact_coordinate_to_urls(
artifact,
server_urls,
"aar",
),
**kwargs
)