61 lines
2.2 KiB
Markdown
61 lines
2.2 KiB
Markdown
# Android support in Bazel
|
|
|
|
## Disclaimer
|
|
|
|
NOTE: This branch contains a development preview of the Starlark implementation of Android rules for Bazel. This code is incomplete and may not function as-is.
|
|
|
|
A version of Bazel built at or near head or a recent pre-release and the following flags are necessary to use these rules:
|
|
|
|
```
|
|
--experimental_enable_android_migration_apis
|
|
--experimental_google_legacy_api
|
|
--incompatible_java_common_parameters
|
|
--android_databinding_use_v3_4_args
|
|
--experimental_android_databinding_v2
|
|
```
|
|
|
|
## Overview
|
|
|
|
This repository contains the Starlark implementation of Android rules in Bazel.
|
|
|
|
The rules are being incrementally converted from their native implementations
|
|
in the [Bazel source
|
|
tree](https://source.bazel.build/bazel/+/master:src/main/java/com/google/devtools/build/lib/rules/android/).
|
|
|
|
For the list of Android rules, see the Bazel [documentation](https://docs.bazel.build/versions/master/be/android.html).
|
|
|
|
## Getting Started
|
|
To use the Starlark Bazel Android rules, add the following to your WORKSPACE file:
|
|
|
|
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
|
|
|
|
# Or a later commit
|
|
RULES_ANDROID_COMMIT= "0bf3093bd011acd35de3c479c8990dd630d552aa"
|
|
RULES_ANDROID_SHA = "b75a673a66c157138ab53f4d8612a6e655d38b69bb14207c1a6675f0e10afa61"
|
|
http_archive(
|
|
name = "build_bazel_rules_android",
|
|
url = "https://github.com/bazelbuild/rules_android/archive/%s.zip" % RULES_ANDROID_COMMIT,
|
|
sha256 = RULES_ANDROID_SHA,
|
|
strip_prefix = "rules_android-%s" % RULES_ANDROID_COMMIT,
|
|
)
|
|
load("@build_bazel_rules_android//:prereqs.bzl", "rules_android_prereqs")
|
|
rules_android_prereqs()
|
|
load("@build_bazel_rules_android//:defs.bzl", "rules_android_workspace")
|
|
rules_android_workspace()
|
|
|
|
register_toolchains(
|
|
"@build_bazel_rules_android//toolchains/android:android_default_toolchain",
|
|
"@build_bazel_rules_android//toolchains/android_sdk:android_sdk_tools",
|
|
)
|
|
|
|
Then, in your BUILD files, import and use the rules:
|
|
|
|
load("@build_bazel_rules_android//rules:rules.bzl", "android_binary", "android_library")
|
|
android_binary(
|
|
...
|
|
)
|
|
|
|
android_library(
|
|
...
|
|
)
|