aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java
diff options
context:
space:
mode:
authorGravatar Florian Weikert <fwe@google.com>2015-08-06 10:24:29 +0000
committerGravatar David Chen <dzc@google.com>2015-08-06 22:13:10 +0000
commit082c05499d4d9c654d288416ed6afefcf81cc090 (patch)
tree63bb172c6633acf04eafe0b3408a72a8b8392078 /src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java
parent7fda631a13be459d9bc8f1353b2dabc63da6f582 (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.java10
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.")