aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2017-02-24 19:03:16 +0000
committerGravatar Yue Gan <yueg@google.com>2017-02-27 15:05:12 +0000
commit9daeb43a13e93790218f2cbe23a87b0468f27ada (patch)
tree51ce52abcc39db1a4292ee8bd3d9c3376787f891 /src/main/java/com/google/devtools/build/lib/analysis
parent50ca4b6012c48c1a414c6fe3f6aaa34f70a17611 (diff)
Fixes issue with ObjcCompileAction where extra action funcitonality is unable
to generate extra action proto file. -- PiperOrigin-RevId: 148479293 MOS_MIGRATED_REVID=148479293
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java
index 05920e1bf5..1aa3ea07e7 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java
@@ -382,9 +382,7 @@ public class SpawnAction extends AbstractAction implements ExecutionInfoSpecifie
public ExtraActionInfo.Builder getExtraActionInfo() {
ExtraActionInfo.Builder builder = super.getExtraActionInfo();
if (extraActionInfoSupplier == null) {
- Spawn spawn = getSpawn();
- SpawnInfo spawnInfo = getExtraActionInfo(spawn);
-
+ SpawnInfo spawnInfo = getExtraActionSpawnInfo();
return builder
.setExtension(SpawnInfo.spawnInfo, spawnInfo);
} else {
@@ -393,9 +391,15 @@ public class SpawnAction extends AbstractAction implements ExecutionInfoSpecifie
}
}
- private static SpawnInfo getExtraActionInfo(Spawn spawn) {
+ /**
+ * Returns information about this spawn action for use by the extra action mechanism.
+ *
+ * <p>Subclasses of SpawnAction may override this in order to provide action-specific behaviour.
+ * This can be necessary, for example, when the action discovers inputs.
+ */
+ protected SpawnInfo getExtraActionSpawnInfo() {
SpawnInfo.Builder info = SpawnInfo.newBuilder();
-
+ Spawn spawn = getSpawn();
info.addAllArgument(spawn.getArguments());
for (Map.Entry<String, String> variable : spawn.getEnvironment().entrySet()) {
info.addVariable(