diff options
author | 2017-02-24 19:03:16 +0000 | |
---|---|---|
committer | 2017-02-27 15:05:12 +0000 | |
commit | 9daeb43a13e93790218f2cbe23a87b0468f27ada (patch) | |
tree | 51ce52abcc39db1a4292ee8bd3d9c3376787f891 /src/main/java/com/google/devtools/build/lib/analysis | |
parent | 50ca4b6012c48c1a414c6fe3f6aaa34f70a17611 (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.java | 14 |
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( |