diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java | 6 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/extra/ExtraAction.java | 18 |
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(); |