diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/objc/CrosstoolCompilationSupport.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/objc/CrosstoolCompilationSupport.java | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/CrosstoolCompilationSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/CrosstoolCompilationSupport.java index e1181495c8..773fb33c46 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/CrosstoolCompilationSupport.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/CrosstoolCompilationSupport.java @@ -100,6 +100,8 @@ public class CrosstoolCompilationSupport extends CompilationSupport { */ private static final String NO_GENERATE_DEBUG_SYMBOLS_FEATURE_NAME = "no_generate_debug_symbols"; + private static final String GENERATE_LINKMAP_FEATURE_NAME = "generate_linkmap"; + private static final ImmutableList<String> ACTIVATED_ACTIONS = ImmutableList.of( "objc-compile", @@ -306,6 +308,14 @@ public class CrosstoolCompilationSupport extends CompilationSupport { executableLinkAction.addActionOutput(dsymBundleZip); } + if (objcConfiguration.generateLinkmap()) { + Artifact linkmap = intermediateArtifacts.linkmap(); + extensionBuilder + .setLinkmap(linkmap) + .addVariableCategory(VariableCategory.LINKMAP_VARIABLES); + executableLinkAction.addActionOutput(linkmap); + } + executableLinkAction.addVariablesExtension(extensionBuilder.build()); ruleContext.registerAction(executableLinkAction.build()); @@ -447,6 +457,9 @@ public class CrosstoolCompilationSupport extends CompilationSupport { } else { activatedCrosstoolSelectables.add(NO_GENERATE_DEBUG_SYMBOLS_FEATURE_NAME); } + if (configuration.getFragment(ObjcConfiguration.class).generateLinkmap()) { + activatedCrosstoolSelectables.add(GENERATE_LINKMAP_FEATURE_NAME); + } activatedCrosstoolSelectables.addAll(ruleContext.getFeatures()); return configuration |