aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis
diff options
context:
space:
mode:
authorGravatar Carmi Grushko <carmi@google.com>2016-11-11 02:45:29 +0000
committerGravatar Klaus Aehlig <aehlig@google.com>2016-11-11 10:05:15 +0000
commit33aa306d3420ba406acdf998208f438e88bebe4b (patch)
tree99a05fd7eca35c374f274575f3a1e103e35484fb /src/main/java/com/google/devtools/build/lib/analysis
parent9048164b509762ed54291b18fbd2e7be27443b95 (diff)
Expose aspect-related information in the extra-action proto that Bazel hands to action_listener() rules.
RELNOTES: Extra actions now contain aspect-related information. -- MOS_MIGRATED_REVID=138832922
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/BuildView.java1
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/ConfiguredTargetFactory.java18
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java29
3 files changed, 39 insertions, 9 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java b/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
index 239fd936ef..f90123dbc4 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
@@ -1055,6 +1055,7 @@ public class BuildView {
env,
(Rule) target.getTarget(),
null,
+ null,
targetConfig,
configurations.getHostConfiguration(),
ruleClassProvider.getPrerequisiteValidator(),
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredTargetFactory.java b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredTargetFactory.java
index fdd38db6de..7a375cedad 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredTargetFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredTargetFactory.java
@@ -228,6 +228,7 @@ public final class ConfiguredTargetFactory {
env,
rule,
null,
+ null,
configuration,
hostConfiguration,
ruleClassProvider.getPrerequisiteValidator(),
@@ -317,13 +318,16 @@ public final class ConfiguredTargetFactory {
BuildConfiguration aspectConfiguration,
BuildConfiguration hostConfiguration)
throws InterruptedException {
- RuleContext.Builder builder = new RuleContext.Builder(env,
- associatedTarget.getTarget(),
- aspect.getAspectClass().getName(),
- aspectConfiguration,
- hostConfiguration,
- ruleClassProvider.getPrerequisiteValidator(),
- aspect.getDefinition().getConfigurationFragmentPolicy());
+ RuleContext.Builder builder =
+ new RuleContext.Builder(
+ env,
+ associatedTarget.getTarget(),
+ aspect.getAspectClass().getName(),
+ aspect.getParameters(),
+ aspectConfiguration,
+ hostConfiguration,
+ ruleClassProvider.getPrerequisiteValidator(),
+ aspect.getDefinition().getConfigurationFragmentPolicy());
RuleContext ruleContext =
builder
.setVisibility(
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
index 8f186d4cfa..8bee13b64e 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
@@ -53,6 +53,7 @@ import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.events.Location;
+import com.google.devtools.build.lib.packages.AspectParameters;
import com.google.devtools.build.lib.packages.Attribute;
import com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition;
import com.google.devtools.build.lib.packages.Attribute.SplitTransition;
@@ -106,6 +107,7 @@ import javax.annotation.Nullable;
*/
public final class RuleContext extends TargetContext
implements ActionConstructionContext, ActionRegistry, RuleErrorConsumer {
+
/**
* The configured version of FilesetEntry.
*/
@@ -147,6 +149,8 @@ public final class RuleContext extends TargetContext
private static final String HOST_CONFIGURATION_PROGRESS_TAG = "for host";
private final Rule rule;
+ @Nullable private final String aspectName;
+ @Nullable private final AspectParameters aspectParameters;
private final ListMultimap<String, ConfiguredTarget> targetMap;
private final ListMultimap<String, ConfiguredFilesetEntry> filesetEntryMap;
private final ImmutableMap<Label, ConfigMatchingProvider> configConditions;
@@ -178,6 +182,8 @@ public final class RuleContext extends TargetContext
super(builder.env, builder.rule, builder.configuration, builder.prerequisiteMap.get(null),
builder.visibility);
this.rule = builder.rule;
+ this.aspectName = builder.getAspectName();
+ this.aspectParameters = builder.getAspectParameters();
this.configurationFragmentPolicy = builder.configurationFragmentPolicy;
this.universalFragment = universalFragment;
this.targetMap = targetMap;
@@ -322,7 +328,7 @@ public final class RuleContext extends TargetContext
@Override
public ActionOwner getActionOwner() {
if (actionOwner == null) {
- actionOwner = createActionOwner(rule, getConfiguration());
+ actionOwner = createActionOwner(rule, aspectName, aspectParameters, getConfiguration());
}
return actionOwner;
}
@@ -398,9 +404,15 @@ public final class RuleContext extends TargetContext
}
@VisibleForTesting
- public static ActionOwner createActionOwner(Rule rule, BuildConfiguration configuration) {
+ public static ActionOwner createActionOwner(
+ Rule rule,
+ @Nullable String aspectName,
+ @Nullable AspectParameters aspectParameters,
+ BuildConfiguration configuration) {
return ActionOwner.create(
rule.getLabel(),
+ aspectName,
+ aspectParameters,
rule.getLocation(),
configuration.getMnemonic(),
rule.getTargetKind(),
@@ -1402,6 +1414,7 @@ public final class RuleContext extends TargetContext
private final BuildConfiguration hostConfiguration;
private final PrerequisiteValidator prerequisiteValidator;
@Nullable private final String aspectName;
+ @Nullable private final AspectParameters aspectParameters;
private final ErrorReporter reporter;
private OrderedSetMultimap<Attribute, ConfiguredTarget> prerequisiteMap;
private ImmutableMap<Label, ConfigMatchingProvider> configConditions;
@@ -1413,6 +1426,7 @@ public final class RuleContext extends TargetContext
AnalysisEnvironment env,
Rule rule,
@Nullable String aspectName,
+ @Nullable AspectParameters aspectParameters,
BuildConfiguration configuration,
BuildConfiguration hostConfiguration,
PrerequisiteValidator prerequisiteValidator,
@@ -1420,6 +1434,7 @@ public final class RuleContext extends TargetContext
this.env = Preconditions.checkNotNull(env);
this.rule = Preconditions.checkNotNull(rule);
this.aspectName = aspectName;
+ this.aspectParameters = aspectParameters;
this.configurationFragmentPolicy = Preconditions.checkNotNull(configurationFragmentPolicy);
this.configuration = Preconditions.checkNotNull(configuration);
this.hostConfiguration = Preconditions.checkNotNull(hostConfiguration);
@@ -1924,6 +1939,16 @@ public final class RuleContext extends TargetContext
prerequisiteValidator.validate(this, prerequisite, attribute);
}
}
+
+ @Nullable
+ public AspectParameters getAspectParameters() {
+ return aspectParameters;
+ }
+
+ @Nullable
+ public String getAspectName() {
+ return aspectName;
+ }
}
/**