Flip the flag to move CcToolchainProvider creation to cc_toolchain_suite

This way, we don't have to do any package loading in the CppConfiguration
(yay!). cc_toolchain now provides CcToolchainAttributesProvider, a lightweight
representation of its attributes, and cc_toolchain_suite will select one and use
it to create the full CcToolchainProvider.

This cl should be backwards compatible under normal use, but there are some
behavioral differences:

* Before, cc_toolchain_suite was not analyzed
* Before, only the selected cc_toolchain was analyzed
* Before, cc_toolchain_alias returned cc_toolchain target (observable from aspects)
* Now, cc_toolchain_suite is analyzed
* Now, all cc_toolchains of the cc_toolchain_suite are analyzed
* Before, cc_toolchain_alias returns cc_toolchain_suite target (observable from aspects)

Progress on #6072
Fixes #6537

RELNOTES: None.
PiperOrigin-RevId: 222289686
6 files changed
tree: ef015cf3dc514610dced344624f0467e1eec9031
  1. .bazelci/
  2. examples/
  3. scripts/
  4. site/
  5. src/
  6. third_party/
  7. tools/
  8. .gitattributes
  9. .gitignore
  10. AUTHORS
  11. BUILD
  12. CHANGELOG.md
  13. CODEOWNERS
  14. combine_distfiles.py
  15. combine_distfiles_to_tar.sh
  16. compile.sh
  17. CONTRIBUTING.md
  18. CONTRIBUTORS
  19. distdir.bzl
  20. ISSUE_TEMPLATE.md
  21. LICENSE
  22. README.md
  23. 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 only rebuilds 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

Bazel is released in ‘Beta’. See the product roadmap to learn about the path toward a stable 1.0 release.