From b8a6c332bd79372d558c16ac0f9206279b889d48 Mon Sep 17 00:00:00 2001 From: Carmi Grushko Date: Fri, 17 Feb 2017 20:46:51 +0000 Subject: Rollback of commit 41c2a26eef89167e807cbc9f33487dc66bb757d3. This is not a clean rollback: I had to change CppCompileAction on line 1278 and pass cppSemantics.getIncludeProcessing(). Please flag this if it doesn't make sense :) -- PiperOrigin-RevId: 147868235 MOS_MIGRATED_REVID=147868235 --- .../devtools/build/lib/actions/AbstractAction.java | 24 ++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) (limited to 'src/main/java/com/google/devtools/build/lib/actions') diff --git a/src/main/java/com/google/devtools/build/lib/actions/AbstractAction.java b/src/main/java/com/google/devtools/build/lib/actions/AbstractAction.java index a8b460e823..7919529da0 100644 --- a/src/main/java/com/google/devtools/build/lib/actions/AbstractAction.java +++ b/src/main/java/com/google/devtools/build/lib/actions/AbstractAction.java @@ -174,8 +174,7 @@ public abstract class AbstractAction implements Action, SkylarkValue { } @Override - public synchronized Iterable discoverInputs( - ActionExecutionContext actionExecutionContext) + public Iterable discoverInputs(ActionExecutionContext actionExecutionContext) throws ActionExecutionException, InterruptedException { throw new IllegalStateException("discoverInputs cannot be called for " + this.prettyPrint() + " since it does not discover inputs"); @@ -496,6 +495,27 @@ public abstract class AbstractAction implements Action, SkylarkValue { return ImmutableSet.of(); } + /** + * Returns input files that need to be present to allow extra_action rules to shadow this action + * correctly when run remotely. This is at least the normal inputs of the action, but may include + * other files as well. For example C(++) compilation may perform include file header scanning. + * This needs to be mirrored by the extra_action rule. Called by + * {@link com.google.devtools.build.lib.rules.extra.ExtraAction} at execution time. + * + *

As this method is called from the ExtraAction, make sure it is ok to call + * this method from a different thread than the one this action is executed on. + * + * @param actionExecutionContext Services in the scope of the action, like the Out/Err streams. + * @throws ActionExecutionException only when code called from this method + * throws that exception. + * @throws InterruptedException if interrupted + */ + public Iterable getInputFilesForExtraAction( + ActionExecutionContext actionExecutionContext) + throws ActionExecutionException, InterruptedException { + return getInputs(); + } + @SkylarkCallable( name = "inputs", doc = "A set of the input files of this action.", -- cgit v1.2.3