aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules
diff options
context:
space:
mode:
authorGravatar Dmitry Lomov <dslomov@google.com>2016-11-07 18:47:53 +0000
committerGravatar Klaus Aehlig <aehlig@google.com>2016-11-08 09:14:26 +0000
commitb91fac3b1f0f5142a906aa12280de936f29fb607 (patch)
tree41af1baca99809c6d03ab56e33bd8a45529d3d95 /src/main/java/com/google/devtools/build/lib/rules
parent7dbe3f7c0499ee201b426ea3b877da64423c3547 (diff)
Restrict google_glob_information to eclipse_aspect.
'--legacy_expose_globs' flag has no effect now. -- MOS_MIGRATED_REVID=138410651
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleConfiguredTargetBuilder.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java22
2 files changed, 14 insertions, 12 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleConfiguredTargetBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleConfiguredTargetBuilder.java
index 6ac83f5667..814ae564b8 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleConfiguredTargetBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleConfiguredTargetBuilder.java
@@ -31,7 +31,6 @@ import com.google.devtools.build.lib.events.Location;
import com.google.devtools.build.lib.packages.Rule;
import com.google.devtools.build.lib.packages.SkylarkClassObject;
import com.google.devtools.build.lib.packages.TargetUtils;
-import com.google.devtools.build.lib.rules.SkylarkRuleContext.Kind;
import com.google.devtools.build.lib.rules.test.InstrumentedFilesCollector;
import com.google.devtools.build.lib.rules.test.InstrumentedFilesCollector.InstrumentationSpec;
import com.google.devtools.build.lib.rules.test.InstrumentedFilesProvider;
@@ -72,7 +71,8 @@ public final class SkylarkRuleConfiguredTargetBuilder {
throws InterruptedException {
String expectFailure = ruleContext.attributes().get("expect_failure", Type.STRING);
try (Mutability mutability = Mutability.create("configured target")) {
- SkylarkRuleContext skylarkRuleContext = new SkylarkRuleContext(ruleContext, Kind.RULE);
+ SkylarkRuleContext skylarkRuleContext = new SkylarkRuleContext(ruleContext,
+ null);
Environment env = Environment.builder(mutability)
.setSkylark()
.setCallerLabel(ruleContext.getLabel())
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 31ad28093e..37a77d4be2 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
@@ -44,6 +44,7 @@ import com.google.devtools.build.lib.packages.ImplicitOutputsFunction.SkylarkImp
import com.google.devtools.build.lib.packages.OutputFile;
import com.google.devtools.build.lib.packages.Package;
import com.google.devtools.build.lib.packages.RawAttributeMapper;
+import com.google.devtools.build.lib.packages.SkylarkAspect;
import com.google.devtools.build.lib.packages.SkylarkClassObject;
import com.google.devtools.build.lib.packages.SkylarkClassObjectConstructor;
import com.google.devtools.build.lib.shell.ShellUtils;
@@ -141,6 +142,7 @@ public final class SkylarkRuleContext {
private final FragmentCollection fragments;
private final FragmentCollection hostFragments;
+ private final SkylarkAspect skylarkAspect;
private final SkylarkDict<String, String> makeVariables;
private final SkylarkRuleAttributesCollection attributesCollection;
@@ -151,24 +153,19 @@ public final class SkylarkRuleContext {
private final SkylarkClassObject outputsObject;
/**
- * Determines whether this context is for rule implementation or for aspect implementation.
- */
- public enum Kind {
- RULE,
- ASPECT
- }
-
- /**
* Creates a new SkylarkRuleContext using ruleContext.
+ * @param skylarkAspect aspect for which the context is created, or <code>null</code>
+ * if it is for a rule.
* @throws InterruptedException
*/
- public SkylarkRuleContext(RuleContext ruleContext, Kind kind)
+ public SkylarkRuleContext(RuleContext ruleContext, @Nullable SkylarkAspect skylarkAspect)
throws EvalException, InterruptedException {
this.ruleContext = Preconditions.checkNotNull(ruleContext);
this.fragments = new FragmentCollection(ruleContext, ConfigurationTransition.NONE);
this.hostFragments = new FragmentCollection(ruleContext, ConfigurationTransition.HOST);
+ this.skylarkAspect = skylarkAspect;
- if (kind == Kind.RULE) {
+ if (skylarkAspect == null) {
Collection<Attribute> attributes = ruleContext.getRule().getAttributes();
HashMap<String, Object> outputsBuilder = new HashMap<>();
if (ruleContext.getRule().getRuleClassObject().outputsDefaultExecutable()) {
@@ -246,6 +243,11 @@ public final class SkylarkRuleContext {
makeVariables = ruleContext.getConfigurationMakeVariableContext().collectMakeVariables();
}
+ @Nullable
+ public SkylarkAspect getSkylarkAspect() {
+ return skylarkAspect;
+ }
+
private Function<Attribute, Object> attributeValueExtractorForRule(
final RuleContext ruleContext) {
return new Function<Attribute, Object>() {