Merge remote-tracking branch 'aosp/upstream-main' into HEAD am: 39292a3354

Original change: https://android-review.googlesource.com/c/platform/external/bazelbuild-rules_android/+/2777173

Change-Id: If1a05fe062e0191c3e94494246116b03b5336575
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
tree: a58049c9682d6fd38e8408479340bf3911b87515
  1. .bazelci/
  2. android/
  3. examples/
  4. kokoro/
  5. mobile_install/
  6. rules/
  7. src/
  8. test/
  9. toolchains/
  10. tools/
  11. .bazelignore
  12. .bazelrc
  13. .gitignore
  14. android_sdk_supplemental_repository.bzl
  15. AUTHORS
  16. BUILD
  17. CONTRIBUTING.md
  18. CONTRIBUTORS
  19. defs.bzl
  20. defs_dev.bzl
  21. go.mod
  22. go.sum
  23. groups
  24. LICENSE
  25. METADATA
  26. MODULE.bazel
  27. MODULE_LICENSE_APACHE2
  28. prereqs.bzl
  29. project.config
  30. README.md
  31. ROADMAP.md
  32. rules_android_maven_install.json
  33. WORKSPACE
  34. WORKSPACE.bzlmod
README.md

Android support in Bazel

Disclaimer

NOTE: This branch is 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.

For the list of Android rules, see the Bazel documentation.

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 = "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("@rules_android//:prereqs.bzl", "rules_android_prereqs")
rules_android_prereqs()
load("@rules_android//:defs.bzl", "rules_android_workspace")
rules_android_workspace()

register_toolchains(
"@rules_android//toolchains/android:android_default_toolchain",
"@rules_android//toolchains/android_sdk:android_sdk_tools",
)

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

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

android_library(
    ...
)