diff options
author | 2015-08-06 10:24:29 +0000 | |
---|---|---|
committer | 2015-08-06 22:13:10 +0000 | |
commit | 082c05499d4d9c654d288416ed6afefcf81cc090 (patch) | |
tree | 63bb172c6633acf04eafe0b3408a72a8b8392078 /src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java | |
parent | 7fda631a13be459d9bc8f1353b2dabc63da6f582 (diff) |
Skylark: In addition to using ctx.configuration.fragment(CONF), the build configuration can now be accessed via ctx.fragments.CONF where CONF is in {cpp, jvm, java}.
--
MOS_MIGRATED_REVID=100016978
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java index 43b42ca9df..385b04d8ca 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java +++ b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java @@ -33,6 +33,7 @@ import com.google.devtools.build.lib.analysis.RuleConfiguredTarget.Mode; import com.google.devtools.build.lib.analysis.RuleContext; import com.google.devtools.build.lib.analysis.TransitiveInfoCollection; import com.google.devtools.build.lib.analysis.config.BuildConfiguration; +import com.google.devtools.build.lib.analysis.config.FragmentCollection; import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.packages.Attribute; import com.google.devtools.build.lib.packages.ImplicitOutputsFunction; @@ -93,6 +94,8 @@ public final class SkylarkRuleContext { }); private final RuleContext ruleContext; + + private final FragmentCollection fragments; // TODO(bazel-team): support configurable attributes. private final SkylarkClassObject attrObject; @@ -128,6 +131,7 @@ public final class SkylarkRuleContext { */ public SkylarkRuleContext(RuleContext ruleContext) throws EvalException { this.ruleContext = Preconditions.checkNotNull(ruleContext); + fragments = new FragmentCollection(ruleContext); HashMap<String, Object> outputsBuilder = new HashMap<>(); if (ruleContext.getRule().getRuleClassObject().outputsDefaultExecutable()) { @@ -318,6 +322,12 @@ public final class SkylarkRuleContext { return ruleContext.getLabel(); } + @SkylarkCallable( + name = "fragments", structField = true, doc = "Allows access to configuration fragments.") + public FragmentCollection getFragments() { + return fragments; + } + @SkylarkCallable(name = "configuration", structField = true, doc = "Returns the default configuration. See the <a href=\"#modules.configuration\">" + "configuration</a> type for more details.") |