From a242f210e6584a4fbe2b29e2ca42e94dbb843552 Mon Sep 17 00:00:00 2001 From: Ulf Adams Date: Tue, 10 Feb 2015 17:16:52 +0000 Subject: Copy over any input manifests from the shadowed action to the extra action. -- MOS_MIGRATED_REVID=85994411 --- .../devtools/build/lib/rules/extra/ExtraAction.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'src/main/java/com/google/devtools/build/lib/rules') 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.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 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(); -- cgit v1.2.3