aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build
diff options
context:
space:
mode:
authorGravatar ulfjack <ulfjack@google.com>2018-02-08 04:11:50 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-02-08 04:13:49 -0800
commitb116240ea496b95f8846abd76f29416b0bdc9cc9 (patch)
tree65074838cf06ab55b555ccc2d5da7938ab9b0690 /src/main/java/com/google/devtools/build
parent8a96fe9bc1472656cecc420df881181340b82a40 (diff)
Split CppIncludeScanningContext out of CppCompileActionContext
Rename IncludeScanningContext to CppIncludeExtractionContext, which more closely matches its semantics. PiperOrigin-RevId: 184974810
Diffstat (limited to 'src/main/java/com/google/devtools/build')
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/BazelActionContextConsumer.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionContext.java15
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppIncludeExtractionContext.java (renamed from src/main/java/com/google/devtools/build/lib/rules/cpp/IncludeScanningContext.java)2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppIncludeScanningContext.java40
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/ExtractInclusionAction.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/FakeCppCompileAction.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/SpawnGccStrategy.java9
-rw-r--r--src/main/java/com/google/devtools/build/lib/standalone/StandaloneActionContextProvider.java36
9 files changed, 83 insertions, 41 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelActionContextConsumer.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelActionContextConsumer.java
index 9bf4f6376e..9b3e3709c5 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelActionContextConsumer.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelActionContextConsumer.java
@@ -24,7 +24,8 @@ import com.google.devtools.build.lib.exec.ActionContextConsumer;
import com.google.devtools.build.lib.exec.SpawnCache;
import com.google.devtools.build.lib.rules.android.WriteAdbArgsActionContext;
import com.google.devtools.build.lib.rules.cpp.CppCompileActionContext;
-import com.google.devtools.build.lib.rules.cpp.IncludeScanningContext;
+import com.google.devtools.build.lib.rules.cpp.CppIncludeExtractionContext;
+import com.google.devtools.build.lib.rules.cpp.CppIncludeScanningContext;
import java.util.Map;
import java.util.TreeMap;
@@ -73,7 +74,8 @@ public class BazelActionContextConsumer implements ActionContextConsumer {
public Multimap<Class<? extends ActionContext>, String> getActionContexts() {
return ImmutableMultimap.<Class<? extends ActionContext>, String>builder()
.put(CppCompileActionContext.class, "")
- .put(IncludeScanningContext.class, "")
+ .put(CppIncludeExtractionContext.class, "")
+ .put(CppIncludeScanningContext.class, "")
.put(FileWriteActionContext.class, "")
.put(WriteAdbArgsActionContext.class, "")
.put(SpawnCache.class, "")
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 c2804a75c6..15cf6a7bfc 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
@@ -426,7 +426,7 @@ public class CppCompileAction extends AbstractAction
try {
initialResult =
actionExecutionContext
- .getContext(CppCompileActionContext.class)
+ .getContext(CppIncludeScanningContext.class)
.findAdditionalInputs(
this, actionExecutionContext, cppSemantics.getIncludeProcessing());
} catch (ExecException e) {
@@ -1120,8 +1120,8 @@ public class CppCompileAction extends AbstractAction
ensureCoverageNotesFilesExist();
// This is the .d file scanning part.
- IncludeScanningContext scanningContext =
- actionExecutionContext.getContext(IncludeScanningContext.class);
+ CppIncludeExtractionContext scanningContext =
+ actionExecutionContext.getContext(CppIncludeExtractionContext.class);
Path execRoot = actionExecutionContext.getExecRoot();
NestedSet<Artifact> discoveredInputs;
@@ -1271,7 +1271,7 @@ public class CppCompileAction extends AbstractAction
throws ActionExecutionException, InterruptedException {
Iterable<Artifact> scannedIncludes;
try {
- scannedIncludes = actionExecutionContext.getContext(CppCompileActionContext.class)
+ scannedIncludes = actionExecutionContext.getContext(CppIncludeScanningContext.class)
.findAdditionalInputs(this, actionExecutionContext, cppSemantics.getIncludeProcessing());
} catch (ExecException e) {
throw e.toActionExecutionException(this);
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionContext.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionContext.java
index 5e890d6dcd..804caf11d6 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionContext.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionContext.java
@@ -16,11 +16,8 @@ package com.google.devtools.build.lib.rules.cpp;
import com.google.devtools.build.lib.actions.ActionContext;
import com.google.devtools.build.lib.actions.ActionContextMarker;
import com.google.devtools.build.lib.actions.ActionExecutionContext;
-import com.google.devtools.build.lib.actions.ActionExecutionException;
-import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.ExecException;
import java.io.IOException;
-import javax.annotation.Nullable;
/**
* Context for compiling plain C++.
@@ -38,18 +35,6 @@ public interface CppCompileActionContext extends ActionContext {
}
/**
- * Does include scanning to find the list of files needed to execute the action.
- *
- * <p>Returns null if additional inputs will only be found during action execution, not before.
- */
- @Nullable
- Iterable<Artifact> findAdditionalInputs(
- CppCompileAction action,
- ActionExecutionContext actionExecutionContext,
- IncludeProcessing includeProcessing)
- throws ExecException, InterruptedException, ActionExecutionException;
-
- /**
* Executes the given action and return the reply of the executor.
*
* @return a CppCompileActionResult with information resulting from the action's execution
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/IncludeScanningContext.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppIncludeExtractionContext.java
index 1305960657..8b4b638e53 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/IncludeScanningContext.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppIncludeExtractionContext.java
@@ -24,7 +24,7 @@ import java.io.IOException;
/**
* Context for actions that do include scanning.
*/
-public interface IncludeScanningContext extends ActionContext {
+public interface CppIncludeExtractionContext extends ActionContext {
/**
* Extracts the set of include files from a source file.
*
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppIncludeScanningContext.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppIncludeScanningContext.java
new file mode 100644
index 0000000000..c67f0f857a
--- /dev/null
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppIncludeScanningContext.java
@@ -0,0 +1,40 @@
+// Copyright 2018 The Bazel Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+package com.google.devtools.build.lib.rules.cpp;
+
+import com.google.devtools.build.lib.actions.ActionContext;
+import com.google.devtools.build.lib.actions.ActionContextMarker;
+import com.google.devtools.build.lib.actions.ActionExecutionContext;
+import com.google.devtools.build.lib.actions.ActionExecutionException;
+import com.google.devtools.build.lib.actions.Artifact;
+import com.google.devtools.build.lib.actions.ExecException;
+import javax.annotation.Nullable;
+
+/**
+ * Context for include scanning.
+ */
+@ActionContextMarker(name = "IncludeScanning")
+public interface CppIncludeScanningContext extends ActionContext {
+ /**
+ * Does include scanning to find the list of files needed to execute the action.
+ *
+ * <p>Returns null if additional inputs will only be found during action execution, not before.
+ */
+ @Nullable
+ Iterable<Artifact> findAdditionalInputs(
+ CppCompileAction action,
+ ActionExecutionContext actionExecutionContext,
+ IncludeProcessing includeProcessing)
+ throws ExecException, InterruptedException, ActionExecutionException;
+}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/ExtractInclusionAction.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/ExtractInclusionAction.java
index c76ef3dfdf..aa69b13bf2 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/ExtractInclusionAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/ExtractInclusionAction.java
@@ -68,8 +68,8 @@ final class ExtractInclusionAction extends AbstractAction {
@Override
public ActionResult execute(ActionExecutionContext actionExecutionContext)
throws ActionExecutionException, InterruptedException {
- IncludeScanningContext context =
- actionExecutionContext.getContext(IncludeScanningContext.class);
+ CppIncludeExtractionContext context =
+ actionExecutionContext.getContext(CppIncludeExtractionContext.class);
try {
context.extractIncludes(actionExecutionContext, this, getPrimaryInput(),
getPrimaryOutput());
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/FakeCppCompileAction.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/FakeCppCompileAction.java
index 102b895182..acdaafde3a 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/FakeCppCompileAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/FakeCppCompileAction.java
@@ -145,8 +145,8 @@ public class FakeCppCompileAction extends CppCompileAction {
actionExecutionContext.getVerboseFailures(),
this);
}
- IncludeScanningContext scanningContext =
- actionExecutionContext.getContext(IncludeScanningContext.class);
+ CppIncludeExtractionContext scanningContext =
+ actionExecutionContext.getContext(CppIncludeExtractionContext.class);
Path execRoot = actionExecutionContext.getExecRoot();
NestedSet<Artifact> discoveredInputs;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/SpawnGccStrategy.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/SpawnGccStrategy.java
index 77966e0f88..d0f68c97bd 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/SpawnGccStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/SpawnGccStrategy.java
@@ -37,15 +37,6 @@ import java.util.List;
)
public class SpawnGccStrategy implements CppCompileActionContext {
@Override
- public Iterable<Artifact> findAdditionalInputs(
- CppCompileAction action,
- ActionExecutionContext actionExecutionContext,
- IncludeProcessing includeProcessing)
- throws ExecException, InterruptedException {
- return null;
- }
-
- @Override
public CppCompileActionResult execWithReply(
CppCompileAction action, ActionExecutionContext actionExecutionContext)
throws ExecException, InterruptedException {
diff --git a/src/main/java/com/google/devtools/build/lib/standalone/StandaloneActionContextProvider.java b/src/main/java/com/google/devtools/build/lib/standalone/StandaloneActionContextProvider.java
index 1181cb7e44..0c0775b8da 100644
--- a/src/main/java/com/google/devtools/build/lib/standalone/StandaloneActionContextProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/standalone/StandaloneActionContextProvider.java
@@ -17,8 +17,10 @@ import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.actions.Action;
import com.google.devtools.build.lib.actions.ActionContext;
import com.google.devtools.build.lib.actions.ActionExecutionContext;
+import com.google.devtools.build.lib.actions.ActionExecutionException;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.ArtifactResolver;
+import com.google.devtools.build.lib.actions.ExecException;
import com.google.devtools.build.lib.actions.ExecutionStrategy;
import com.google.devtools.build.lib.actions.ResourceManager;
import com.google.devtools.build.lib.analysis.test.TestActionContext;
@@ -34,7 +36,10 @@ import com.google.devtools.build.lib.exec.local.LocalExecutionOptions;
import com.google.devtools.build.lib.exec.local.LocalSpawnRunner;
import com.google.devtools.build.lib.exec.local.PosixLocalEnvProvider;
import com.google.devtools.build.lib.exec.local.WindowsLocalEnvProvider;
-import com.google.devtools.build.lib.rules.cpp.IncludeScanningContext;
+import com.google.devtools.build.lib.rules.cpp.CppCompileAction;
+import com.google.devtools.build.lib.rules.cpp.CppIncludeExtractionContext;
+import com.google.devtools.build.lib.rules.cpp.CppIncludeScanningContext;
+import com.google.devtools.build.lib.rules.cpp.IncludeProcessing;
import com.google.devtools.build.lib.rules.cpp.SpawnGccStrategy;
import com.google.devtools.build.lib.rules.test.ExclusiveTestStrategy;
import com.google.devtools.build.lib.runtime.CommandEnvironment;
@@ -42,6 +47,7 @@ import com.google.devtools.build.lib.util.OS;
import com.google.devtools.build.lib.vfs.FileSystemUtils;
import com.google.devtools.build.lib.vfs.Path;
import java.io.IOException;
+import javax.annotation.Nullable;
/**
* Provide a standalone, local execution context.
@@ -49,11 +55,11 @@ import java.io.IOException;
public class StandaloneActionContextProvider extends ActionContextProvider {
/**
- * a IncludeScanningContext that does nothing. Since local execution does not need to
- * discover inclusion in advance, we do not need include scanning.
+ * An IncludeExtractionContext that does nothing. Since local execution does not need to discover
+ * inclusion in advance, we do not need include scanning.
*/
- @ExecutionStrategy(contextType = IncludeScanningContext.class)
- class DummyIncludeScanningContext implements IncludeScanningContext {
+ @ExecutionStrategy(contextType = CppIncludeExtractionContext.class)
+ class DummyCppIncludeExtractionContext implements CppIncludeExtractionContext {
@Override
public void extractIncludes(
ActionExecutionContext actionExecutionContext,
@@ -70,6 +76,23 @@ public class StandaloneActionContextProvider extends ActionContextProvider {
}
}
+ /**
+ * An IncludeScanningContext that does nothing. Since local execution does not need to discover
+ * inclusion in advance, we do not need include scanning.
+ */
+ @ExecutionStrategy(contextType = CppIncludeScanningContext.class)
+ static class DummyCppIncludeScanningContext implements CppIncludeScanningContext {
+ @Override
+ @Nullable
+ public Iterable<Artifact> findAdditionalInputs(
+ CppCompileAction action,
+ ActionExecutionContext actionExecutionContext,
+ IncludeProcessing includeProcessing)
+ throws ExecException, InterruptedException, ActionExecutionException {
+ return null;
+ }
+ }
+
private final CommandEnvironment env;
public StandaloneActionContextProvider(CommandEnvironment env) {
@@ -92,7 +115,8 @@ public class StandaloneActionContextProvider extends ActionContextProvider {
// last one from strategies list will be used
return ImmutableList.of(
new StandaloneSpawnStrategy(env.getExecRoot(), createLocalRunner(env)),
- new DummyIncludeScanningContext(),
+ new DummyCppIncludeExtractionContext(),
+ new DummyCppIncludeScanningContext(),
new SpawnGccStrategy(),
testStrategy,
new ExclusiveTestStrategy(testStrategy),