| # Copyright (C) 2020 The Dagger Authors. |
| # |
| # 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. |
| |
| """Macro for producing dejetified artifacts. |
| """ |
| |
| # See: https://developer.android.com/studio/command-line/jetifier |
| JETIFIER_STANDALONE = "https://dl.google.com/dl/android/studio/jetifier-zips/1.0.0-beta08/jetifier-standalone.zip" |
| |
| def dejetified_library(name, input, output): |
| _dejetify_library(name, input, output) |
| |
| def _dejetify_library(name, input, output): |
| """Generates a dejetified library artifact. |
| |
| A dejetified artifact is one that has been transformed to migrate its |
| AndroidX APIs to the support equivalents. |
| |
| Args: |
| name: The name of the target. |
| input: The android_library input, e.g. ":myLibrary.aar". |
| output: The name of the output artifact, e.g. "dejetified-myLibrary.aar". |
| """ |
| native.genrule( |
| name = name, |
| srcs = [input], |
| outs = [output], |
| cmd = """ |
| TEMP="$$(mktemp -d)" |
| curl {tool_link} --output $$TEMP/jetifier-standalone.zip |
| unzip $$TEMP/jetifier-standalone.zip -d $$TEMP/ |
| $$TEMP/jetifier-standalone/bin/jetifier-standalone -r \ |
| -l info -i $< -o $@ |
| """.format(tool_link = JETIFIER_STANDALONE), |
| local = 1, |
| ) |