Add support for databinding-generated sources to depend on AndroidX instead of the support libraries.

Note that the Android databinding libraries already support AndroidX support. This CL is primarily introducing a new AndroidX databinding flag and propagating it to the necessary places. This required introducing new flags for some of the actions that correspond to kicking off various parts of the databinding process.

The new flag being introduced is: android_databinding_use_androidx.

The new tests are primarily ensuring each action tied to databinding has the new androidx parameter passed to it. Unfortunately, this only relies on rule analysis and doesn't actually verify that the actions themselves behave correctly with the flag enabled. Similarly, the databinding mapper implementation file switching logic changes can't be tested without executing the actions. Please advise on how to test this if it's valuable.

RELNOTES: Add support for using AndroidX dependencies in data-binding-enabled targets.
PiperOrigin-RevId: 339381866
27 files changed
tree: d6bda9472f6737ef3169e1d225b7a2c688bf8f52
  1. .bazelci/
  2. examples/
  3. scripts/
  4. site/
  5. src/
  6. third_party/
  7. tools/
  8. .bazelrc
  9. .gitattributes
  10. .gitignore
  11. AUTHORS
  12. BUILD
  13. CHANGELOG.md
  14. CODEBASE.md
  15. CODEOWNERS
  16. combine_distfiles.py
  17. combine_distfiles_to_tar.sh
  18. compile.sh
  19. CONTRIBUTING.md
  20. CONTRIBUTORS
  21. distdir.bzl
  22. ISSUE_TEMPLATE.md
  23. LICENSE
  24. README.md
  25. WORKSPACE
README.md

Bazel

{Fast, Correct} - Choose two

Build and test software of any size, quickly and reliably.

  • Speed up your builds and tests: Bazel rebuilds only what is necessary. With advanced local and distributed caching, optimized dependency analysis and parallel execution, you get fast and incremental builds.

  • One tool, multiple languages: Build and test Java, C++, Android, iOS, Go, and a wide variety of other language platforms. Bazel runs on Windows, macOS, and Linux.

  • Scalable: Bazel helps you scale your organization, codebase, and continuous integration solution. It handles codebases of any size, in multiple repositories or a huge monorepo.

  • Extensible to your needs: Easily add support for new languages and platforms with Bazel's familiar extension language. Share and re-use language rules written by the growing Bazel community.

Getting Started

Documentation

Contributing to Bazel

See CONTRIBUTING.md

Build status