commit | 1bca1bde7db06340559878a7d54b1f5698e7ddd6 | [log] [tgz] |
---|---|---|
author | messa <messa@google.com> | Fri May 14 00:48:19 2021 -0700 |
committer | Copybara-Service <copybara-worker@google.com> | Fri May 14 00:49:39 2021 -0700 |
tree | 2d3512968b5c3950cd462cbab08b32b2ea3fa60b | |
parent | 88acef49ee2a6c401b9f96859a2ed7501cf110d3 [diff] |
Add `required_providers` attribute to Starlark defined aspects. `required_providers` attribute allows the aspect to limit its propagation to only the targets whose rules advertise the required providers. It accepts a list of either providers or providers lists. To make some rule targets visible to an aspect, the rule must advertise all providers from at least one of the lists specified in the aspect `required_providers`. This CL also adds incompatible flag `incompatible_top_level_aspects_require_providers` which when set allows the top level aspects to only run on top level targets that advertise its required providers. It is needed to avoid breaking existing usages on command line aspects on targets not advertising its required providers. PiperOrigin-RevId: 373738497
{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.
Follow our tutorials:
See CONTRIBUTING.md