aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: 6cba04f55336f8a567c6c176fe36bc73e9441e45 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# 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.

Bazel 4.0.0 or newer 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
```

Also, register the Android toolchains in the `WORKSPACE` file with:
```
register_toolchains(
  "@build_bazel_rules_android//toolchains/android:android_default_toolchain",
  "@build_bazel_rules_android//toolchains/android_sdk:android_sdk_tools",
)
```
(Assuming that the Android rules repository in the `WORKSPACE` file is named `build_bazel_rules_android`.)

## 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 new Bazel Android rules, add the following to your WORKSPACE file:

    load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
    http_archive(
        name = "build_bazel_rules_android",
        urls = ["https://github.com/bazelbuild/rules_android/archive/v0.1.1.zip"],
        sha256 = "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806",
        strip_prefix = "rules_android-0.1.1",
    )

Then, in your BUILD files, import and use the rules:

    load("@build_bazel_rules_android//rules:rules.bzl", "android_library")
    android_library(
        ...
    )