diff options
author | 2015-03-11 17:28:19 +0000 | |
---|---|---|
committer | 2015-03-11 18:41:36 +0000 | |
commit | 83c7454a4da661f2a81118b7e71b601561d62bc8 (patch) | |
tree | 3e17e809648c4eaf5e4e4421b550ac8b2b333f10 /src/main/java/com/google/devtools/build/lib/rules/extra | |
parent | 4dc828a4f57d3b0e5f9e0189fbbc12e168383c29 (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.java | 12 |
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 |