aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTargetBuilder.java
diff options
context:
space:
mode:
authorGravatar Sergio Campama <kaipi@google.com>2016-12-12 17:43:29 +0000
committerGravatar John Cater <jcater@google.com>2016-12-12 20:36:04 +0000
commit860f28f421e3c2ba7fc6b321224cea81b1024fab (patch)
tree3eb77a5f8b1f692607f1329200809f55feef562c /src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTargetBuilder.java
parentb11dd482eef2eb922686fb9ba96e39113cc1abd1 (diff)
Migrates TestEnvironmentProvider to using the new Skylark declared providers API. This enables creating a TestEnvironmentProvider from Skylark.
-- PiperOrigin-RevId: 141775285 MOS_MIGRATED_REVID=141775285
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTargetBuilder.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTargetBuilder.java20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTargetBuilder.java b/src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTargetBuilder.java
index 78877d3425..61b8109160 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTargetBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTargetBuilder.java
@@ -216,7 +216,10 @@ public final class RuleConfiguredTargetBuilder {
.setInstrumentedFiles(providersBuilder.getProvider(InstrumentedFilesProvider.class));
TestEnvironmentProvider environmentProvider =
- providersBuilder.getProvider(TestEnvironmentProvider.class);
+ (TestEnvironmentProvider)
+ skylarkDeclaredProviders
+ .build()
+ .get(TestEnvironmentProvider.SKYLARK_CONSTRUCTOR.getKey());
if (environmentProvider != null) {
testActionBuilder.addExtraEnv(environmentProvider.getEnvironment());
}
@@ -310,6 +313,21 @@ public final class RuleConfiguredTargetBuilder {
}
/**
+ * Adds "declared providers" defined in native code to the rule. Use this method for declared
+ * providers in definitions of native rules.
+ *
+ * <p>Use {@link #addSkylarkDeclaredProvider(SkylarkClassObject, Location)} for Skylark rule
+ * implementations.
+ */
+ public RuleConfiguredTargetBuilder addNativeDeclaredProviders(
+ Iterable<SkylarkClassObject> providers) {
+ for (SkylarkClassObject provider : providers) {
+ addNativeDeclaredProvider(provider);
+ }
+ return this;
+ }
+
+ /**
* Adds a "declared provider" defined in native code to the rule.
* Use this method for declared providers in definitions of native rules.
*