aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/extra
diff options
context:
space:
mode:
authorGravatar Janak Ramakrishnan <janakr@google.com>2015-03-11 17:28:19 +0000
committerGravatar Han-Wen Nienhuys <hanwen@google.com>2015-03-11 18:41:36 +0000
commit83c7454a4da661f2a81118b7e71b601561d62bc8 (patch)
tree3e17e809648c4eaf5e4e4421b550ac8b2b333f10 /src/main/java/com/google/devtools/build/lib/rules/extra
parent4dc828a4f57d3b0e5f9e0189fbbc12e168383c29 (diff)
Return the set of files found when discovering inputs. Skyframe will probably want to store these and may declare dependencies in advance so all metadata is present in the graph.
Long-term, we may be able to use the returned set to make input-discovering actions immutable, which would be nice. -- MOS_MIGRATED_REVID=88348068
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/extra')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/extra/ExtraAction.java12
1 files changed, 9 insertions, 3 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 9290fc79a2..a1f82a9785 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
@@ -52,6 +52,8 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
+import javax.annotation.Nullable;
+
/**
* Action used by extra_action rules to create an action that shadows an existing action. Runs a
* command-line using {@link SpawnActionContext} for executions.
@@ -115,8 +117,9 @@ public final class ExtraAction extends SpawnAction {
return shadowedAction.discoversInputs();
}
+ @Nullable
@Override
- public void discoverInputs(ActionExecutionContext actionExecutionContext)
+ public Collection<Artifact> discoverInputs(ActionExecutionContext actionExecutionContext)
throws ActionExecutionException, InterruptedException {
Preconditions.checkState(discoversInputs(), this);
if (getContext(actionExecutionContext.getExecutor()).isRemotable(getMnemonic(),
@@ -124,10 +127,13 @@ public final class ExtraAction extends SpawnAction {
// If we're running remotely, we need to update our inputs to take account of any additional
// inputs the shadowed action may need to do its work.
if (shadowedAction.discoversInputs() && shadowedAction instanceof AbstractAction) {
- updateInputs(
- ((AbstractAction) shadowedAction).getInputFilesForExtraAction(actionExecutionContext));
+ Iterable<Artifact> additionalInputs =
+ ((AbstractAction) shadowedAction).getInputFilesForExtraAction(actionExecutionContext);
+ updateInputs(additionalInputs);
+ return ImmutableSet.copyOf(additionalInputs);
}
}
+ return null;
}
@Override