diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules')
4 files changed, 11 insertions, 38 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java index 93473651f2..03e3a42bee 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java @@ -502,7 +502,8 @@ public class CppCompileAction extends AbstractAction @Nullable @Override - public Iterable<Artifact> discoverInputs(ActionExecutionContext actionExecutionContext) + public synchronized Iterable<Artifact> discoverInputs( + ActionExecutionContext actionExecutionContext) throws ActionExecutionException, InterruptedException { Executor executor = actionExecutionContext.getExecutor(); Collection<Artifact> initialResult = null; @@ -1325,32 +1326,6 @@ public class CppCompileAction extends AbstractAction } } - /** - * Provides list of include files needed for performing extra actions on this action when run - * remotely. The list of include files is created by performing a header scan on the known input - * files. - */ - @Override - public Iterable<Artifact> getInputFilesForExtraAction( - ActionExecutionContext actionExecutionContext) - throws ActionExecutionException, InterruptedException { - Collection<Artifact> scannedIncludes; - try { - scannedIncludes = actionExecutionContext.getExecutor().getContext(actionContext) - .findAdditionalInputs(this, actionExecutionContext); - } catch (ExecException e) { - throw e.toActionExecutionException(this); - } - - if (scannedIncludes == null) { - return ImmutableList.of(); - } - - // Use a set to eliminate duplicates. - ImmutableSet.Builder<Artifact> result = ImmutableSet.builder(); - return result.addAll(getInputs()).addAll(scannedIncludes).build(); - } - @Override public String getMnemonic() { return "CppCompile"; } diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/LTOBackendAction.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/LTOBackendAction.java index 0b71041ceb..e6d35fe128 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/LTOBackendAction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/LTOBackendAction.java @@ -117,7 +117,8 @@ public final class LTOBackendAction extends SpawnAction { @Nullable @Override - public Iterable<Artifact> discoverInputs(ActionExecutionContext actionExecutionContext) + public synchronized Iterable<Artifact> discoverInputs( + ActionExecutionContext actionExecutionContext) throws ActionExecutionException, InterruptedException { // Build set of files this LTO backend artifact will import from. HashSet<PathFragment> importSet = new HashSet<>(); 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 866e45e20a..9f07c98285 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 @@ -114,18 +114,15 @@ public final class ExtraAction extends SpawnAction { @Nullable @Override - public Iterable<Artifact> discoverInputs(ActionExecutionContext actionExecutionContext) + public synchronized Iterable<Artifact> discoverInputs( + ActionExecutionContext actionExecutionContext) throws ActionExecutionException, InterruptedException { Preconditions.checkState(discoversInputs(), this); // 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) { - Iterable<Artifact> additionalInputs = - ((AbstractAction) shadowedAction).getInputFilesForExtraAction(actionExecutionContext); - updateInputs(createInputs(additionalInputs, extraActionInputs, runfilesSupplier)); - return ImmutableSet.copyOf(additionalInputs); - } - return null; + Iterable<Artifact> additionalInputs = shadowedAction.discoverInputs(actionExecutionContext); + updateInputs(createInputs(additionalInputs, extraActionInputs, runfilesSupplier)); + return additionalInputs; } @Override diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCompileAction.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCompileAction.java index 55e1baefff..f8ee247c7f 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCompileAction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCompileAction.java @@ -186,8 +186,8 @@ public class ObjcCompileAction extends SpawnAction { return true; } - @Override - public Iterable<Artifact> discoverInputs(ActionExecutionContext actionExecutionContext) + public synchronized Iterable<Artifact> discoverInputs( + ActionExecutionContext actionExecutionContext) throws ActionExecutionException, InterruptedException { if (headersListFile != null) { discoveredInputs = findRequiredHeaderInputs(); |