aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/objc/CrosstoolCompilationSupport.java
diff options
context:
space:
mode:
authorGravatar cpeyser <cpeyser@google.com>2017-04-14 14:27:41 +0200
committerGravatar Klaus Aehlig <aehlig@google.com>2017-04-18 11:10:52 +0200
commit1637af9b570197de5e8df888e4eb95fcf7c95234 (patch)
treedd2a116e2246dede845b5ec480412e0b4567323e /src/main/java/com/google/devtools/build/lib/rules/objc/CrosstoolCompilationSupport.java
parent8ff0d0d436b4fd9fd4199d313f708377c7a668af (diff)
Introduce linkmap support for --experimental_objc_crosstool=all
PiperOrigin-RevId: 153161442
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.java13
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