Merge remote-tracking branch 'aosp/upstream-pre-alpha' into HEAD

* aosp/upstream-pre-alpha: (29 commits)
  Migrate a couple of helper methods for incremental dexing from native Blaze to Starlark.
  Delete empty ACLs android_rules_with_kt_rollout.bzl and kt_android_library_rollout.bzl
  Finish open-sourcing AK
  Internal Code Change
  Don't sort android_binary_internal's list of processors, order matters here.
  Internal Change
  Update rules_android copybara by adding one more transformation
  Add an acl to guard the rollout of dex, desugar and proguard starlarkification.
  Add tools needed for incremental dexing to android_toolchain.
  Set visibility of merge_feature_manifests.par to public
  Change resource shared apk acl to a validation action.
  Open-source merge_feature_manifests.py
  Internal Change
  Add robolectric to bzlmod in rules_android
  adding support for resource only apks to android_library and android_binary.
  Update presubmit.yml inside rules_android
  Delete in_android_rules_with_kt_rollout() == true
  Delete in_kt_android_library_rollout() == true
  Add a README to the basicapp example
  Create acl for linking against a shared resource apk
  ...

Change-Id: I3bae6a7a1739bf83f11934a36afbb5476b6388ce
Bug: 276928228
tree: 920ce496a0324a082ddcd73d91dd452b58813dac
  1. .bazelci/
  2. android/
  3. examples/
  4. kokoro/
  5. mobile_install/
  6. rules/
  7. src/
  8. test/
  9. toolchains/
  10. tools/
  11. .bazelrc
  12. .gitignore
  13. AUTHORS
  14. BUILD
  15. CONTRIBUTING.md
  16. CONTRIBUTORS
  17. defs.bzl
  18. go.mod
  19. go.sum
  20. groups
  21. LICENSE
  22. METADATA
  23. MODULE.bazel
  24. MODULE_LICENSE_APACHE2
  25. prereqs.bzl
  26. project.config
  27. README.md
  28. WORKSPACE
  29. WORKSPACE.bzlmod
README.md

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.

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 = "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(
    ...
)