aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraAction.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/extra/ExtraAction.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/extra/ExtraAction.java18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraAction.java b/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraAction.java
index 2b53a1f1b1..250235d2c8 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraAction.java
@@ -78,7 +78,13 @@ public final class ExtraAction extends SpawnAction {
createInputs(shadowedAction.getInputs(), extraActionInputs),
outputs,
AbstractAction.DEFAULT_RESOURCE_SET,
- argv, environment, progressMessage, mnemonic);
+ argv,
+ ImmutableMap.copyOf(environment),
+ ImmutableMap.<String, String>of(),
+ progressMessage,
+ getManifests(shadowedAction),
+ mnemonic,
+ null);
this.extraActionInfoFile = extraActionInfoFile;
this.shadowedAction = shadowedAction;
this.runfilesManifests = ImmutableMap.copyOf(runfilesManifests);
@@ -92,6 +98,16 @@ public final class ExtraAction extends SpawnAction {
}
}
+ private static ImmutableMap<PathFragment, Artifact> getManifests(Action shadowedAction) {
+ // If the shadowed action is a SpawnAction, then we also add the input manifests to this
+ // action's input manifests.
+ // TODO(bazel-team): Also handle other action classes correctly.
+ if (shadowedAction instanceof SpawnAction) {
+ return ((SpawnAction) shadowedAction).getInputManifests();
+ }
+ return ImmutableMap.of();
+ }
+
@Override
public boolean discoversInputs() {
return shadowedAction.discoversInputs();