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.java27
1 files changed, 19 insertions, 8 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 b2f7fdbbac..930cc932c7 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
@@ -80,7 +80,9 @@ public final class ExtraAction extends SpawnAction {
super(
shadowedAction.getOwner(),
ImmutableList.<Artifact>of(),
- createInputs(shadowedAction.getInputs(), extraActionInputs, runfilesSupplier),
+ createInputs(
+ shadowedAction.getInputs(), ImmutableList.<Artifact>of(), extraActionInputs,
+ runfilesSupplier),
outputs,
AbstractAction.DEFAULT_RESOURCE_SET,
argv,
@@ -121,20 +123,29 @@ public final class ExtraAction extends SpawnAction {
// We need to update our inputs to take account of any additional
// inputs the shadowed action may need to do its work.
- updateInputs(createInputs(shadowedAction.getInputs(), extraActionInputs, runfilesSupplier));
- return Sets.difference(ImmutableSet.copyOf(shadowedAction.getInputs()),
- ImmutableSet.copyOf(originalShadowedActionInputs));
+ Iterable<Artifact> oldInputs = getInputs();
+ updateInputs(createInputs(
+ shadowedAction.getInputs(),
+ shadowedAction.getInputFilesForExtraAction(actionExecutionContext),
+ extraActionInputs,
+ runfilesSupplier));
+ return Sets.<Artifact>difference(
+ ImmutableSet.<Artifact>copyOf(getInputs()), ImmutableSet.<Artifact>copyOf(oldInputs));
}
private static NestedSet<Artifact> createInputs(
Iterable<Artifact> shadowedActionInputs,
+ Iterable<Artifact> inputFilesForExtraAction,
ImmutableSet<Artifact> extraActionInputs,
RunfilesSupplier extraActionRunfilesSupplier) {
NestedSetBuilder<Artifact> result = new NestedSetBuilder<>(Order.STABLE_ORDER);
- if (shadowedActionInputs instanceof NestedSet) {
- result.addTransitive((NestedSet<Artifact>) shadowedActionInputs);
- } else {
- result.addAll(shadowedActionInputs);
+ for (Iterable<Artifact> inputSet : ImmutableList.of(
+ shadowedActionInputs, inputFilesForExtraAction)) {
+ if (inputSet instanceof NestedSet) {
+ result.addTransitive((NestedSet<Artifact>) inputSet);
+ } else {
+ result.addAll(inputSet);
+ }
}
result.addAll(extraActionRunfilesSupplier.getArtifacts());
return result.addAll(extraActionInputs).build();