aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/extra/ExtraAction.java18
2 files changed, 22 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java
index f51c9179ee..2b566374d9 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java
@@ -88,7 +88,7 @@ public class SpawnAction extends AbstractAction {
private final String progressMessage;
private final String mnemonic;
// entries are (directory for remote execution, Artifact)
- private final Map<PathFragment, Artifact> inputManifests;
+ private final ImmutableMap<PathFragment, Artifact> inputManifests;
private final ResourceSet resourceSet;
private final ImmutableMap<String, String> environment;
@@ -235,6 +235,10 @@ public class SpawnAction extends AbstractAction {
}
}
+ public ImmutableMap<PathFragment, Artifact> getInputManifests() {
+ return inputManifests;
+ }
+
/**
* Returns s, truncated to no more than maxLen characters, appending an
* ellipsis if truncation occurred.
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();