aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java
diff options
context:
space:
mode:
authorGravatar ruperts <ruperts@google.com>2017-10-18 00:58:29 +0200
committerGravatar Jakob Buchgraber <buchgr@google.com>2017-10-18 10:28:27 +0200
commit841880dc66bfd0702a08105835a445cb3dc271c9 (patch)
tree758c9178d16f161ed19313a7f0d082c19a4a6db5 /src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java
parent34a9fea78f201caed8ace5c714a0cf288cb97c65 (diff)
Actions now have the option of returning an ActionResult, containing a (possibly empty) set of SpawnResults created during execution of the Action.
RELNOTES: None. PiperOrigin-RevId: 172529328
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java13
1 files changed, 8 insertions, 5 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 5d6c3689d4..3d93900fa6 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
@@ -27,6 +27,7 @@ import com.google.devtools.build.lib.actions.ActionExecutionException;
import com.google.devtools.build.lib.actions.ActionLookupValue;
import com.google.devtools.build.lib.actions.ActionLookupValue.ActionLookupKey;
import com.google.devtools.build.lib.actions.ActionOwner;
+import com.google.devtools.build.lib.actions.ActionResult;
import com.google.devtools.build.lib.actions.ActionStatusMessage;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.Artifact.ArtifactExpander;
@@ -37,6 +38,7 @@ import com.google.devtools.build.lib.actions.ExecException;
import com.google.devtools.build.lib.actions.ExecutionInfoSpecifier;
import com.google.devtools.build.lib.actions.ExecutionRequirements;
import com.google.devtools.build.lib.actions.ResourceSet;
+import com.google.devtools.build.lib.actions.SpawnResult;
import com.google.devtools.build.lib.actions.extra.CppCompileInfo;
import com.google.devtools.build.lib.actions.extra.EnvironmentVariable;
import com.google.devtools.build.lib.actions.extra.ExtraActionInfo;
@@ -1150,11 +1152,9 @@ public class CppCompileAction extends AbstractAction
@Override
@ThreadCompatible
- public void execute(
- ActionExecutionContext actionExecutionContext)
- throws ActionExecutionException, InterruptedException {
+ public ActionResult execute(ActionExecutionContext actionExecutionContext)
+ throws ActionExecutionException, InterruptedException {
setModuleFileFlags();
-
CppCompileActionContext.Reply reply;
ShowIncludesFilter showIncludesFilterForStdout = null;
ShowIncludesFilter showIncludesFilterForStderr = null;
@@ -1166,13 +1166,15 @@ public class CppCompileAction extends AbstractAction
actionExecutionContext.getFileOutErr().setOutputFilter(showIncludesFilterForStdout);
actionExecutionContext.getFileOutErr().setErrorFilter(showIncludesFilterForStderr);
}
+
+ Set<SpawnResult> spawnResults;
try {
CppCompileActionResult cppCompileActionResult =
actionExecutionContext
.getContext(actionContext)
.execWithReply(this, actionExecutionContext);
- // TODO(b/62588075) Save spawnResults from cppCompileActionResult and return them upwards.
reply = cppCompileActionResult.contextReply();
+ spawnResults = cppCompileActionResult.spawnResults();
} catch (ExecException e) {
throw e.toActionExecutionException(
"C++ compilation of rule '" + getOwner().getLabel() + "'",
@@ -1213,6 +1215,7 @@ public class CppCompileAction extends AbstractAction
actionExecutionContext.getArtifactExpander(),
actionExecutionContext.getEventHandler());
}
+ return ActionResult.create(spawnResults);
}
@VisibleForTesting