diff options
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/packages/AspectDefinition.java | 9 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/packages/RuleClass.java | 7 |
2 files changed, 16 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/packages/AspectDefinition.java b/src/main/java/com/google/devtools/build/lib/packages/AspectDefinition.java index 5570c3f913..a028e71a71 100644 --- a/src/main/java/com/google/devtools/build/lib/packages/AspectDefinition.java +++ b/src/main/java/com/google/devtools/build/lib/packages/AspectDefinition.java @@ -291,6 +291,15 @@ public final class AspectDefinition { requiredProviders.addNativeSet(ImmutableSet.copyOf(providers)); return this; } + + /** + * Asserts that this aspect can only be evaluated for rules that supply all of the specified + * Skylark providers. + */ + public Builder requireSkylarkProviders(SkylarkProviderIdentifier... skylarkProviders) { + requiredProviders.addSkylarkSet(ImmutableSet.copyOf(skylarkProviders)); + return this; + } public Builder requireAspectsWithProviders( Iterable<ImmutableSet<SkylarkProviderIdentifier>> providerSets) { diff --git a/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java b/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java index 5709e64d7b..6e1e70b7ee 100644 --- a/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java +++ b/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java @@ -808,6 +808,13 @@ public class RuleClass { return this; } + public Builder advertiseSkylarkProvider(SkylarkProviderIdentifier... skylarkProviders) { + for (SkylarkProviderIdentifier skylarkProviderIdentifier : skylarkProviders) { + advertisedProviders.addSkylark(skylarkProviderIdentifier); + } + return this; + } + /** * Set if the rule can have any provider. This is true for "alias" rules like * <code>bind</code> . |