aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java
diff options
context:
space:
mode:
authorGravatar Chris Parsons <cparsons@google.com>2016-05-23 19:23:24 +0000
committerGravatar Yue Gan <yueg@google.com>2016-05-24 11:57:21 +0000
commit1f67a7be7282310783728c636add4345ba8e2c16 (patch)
tree3b8fe8f98d915e31b278e6a25d2220e1c7c7f5a9 /src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java
parenta385d760f27e38140181ec787e19fed9747617a0 (diff)
libtool wrapper script to isolate the unfortunate hacks we must make to get around apple's buggy libtool tool
-- MOS_MIGRATED_REVID=123024674
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java
index 882faebbce..3fff5d53bd 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java
@@ -38,7 +38,6 @@ import static com.google.devtools.build.lib.rules.objc.ObjcRuleClasses.CLANG_PLU
import static com.google.devtools.build.lib.rules.objc.ObjcRuleClasses.COMPILABLE_SRCS_TYPE;
import static com.google.devtools.build.lib.rules.objc.ObjcRuleClasses.DSYMUTIL;
import static com.google.devtools.build.lib.rules.objc.ObjcRuleClasses.HEADERS;
-import static com.google.devtools.build.lib.rules.objc.ObjcRuleClasses.LIBTOOL;
import static com.google.devtools.build.lib.rules.objc.ObjcRuleClasses.NON_ARC_SRCS_TYPE;
import static com.google.devtools.build.lib.rules.objc.ObjcRuleClasses.PRECOMPILED_SRCS_TYPE;
import static com.google.devtools.build.lib.rules.objc.ObjcRuleClasses.SRCS_TYPE;
@@ -143,7 +142,14 @@ public final class CompilationSupport {
* Returns the location of the xcrunwrapper tool.
*/
public static final FilesToRunProvider xcrunwrapper(RuleContext ruleContext) {
- return ruleContext.getExecutablePrerequisite("$xcrunwrapper", Mode.HOST);
+ return ruleContext.getExecutablePrerequisite("$xcrunwrapper", Mode.HOST);
+ }
+
+ /**
+ * Returns the location of the libtool tool.
+ */
+ public static final FilesToRunProvider libtool(RuleContext ruleContext) {
+ return ruleContext.getExecutablePrerequisite(ObjcRuleClasses.LIBTOOL_ATTRIBUTE, Mode.HOST);
}
/**
@@ -719,9 +725,8 @@ public final class CompilationSupport {
actions.add(ObjcRuleClasses.spawnAppleEnvActionBuilder(
ruleContext, appleConfiguration.getIosCpuPlatform())
.setMnemonic("ObjcLink")
- .setExecutable(xcrunwrapper(ruleContext))
+ .setExecutable(libtool(ruleContext))
.setCommandLine(new CustomCommandLine.Builder()
- .add(LIBTOOL)
.add("-static")
.add("-filelist").add(objList.getExecPathString())
.add("-arch_only").add(appleConfiguration.getIosCpu())
@@ -750,9 +755,8 @@ public final class CompilationSupport {
ruleContext.registerAction(ObjcRuleClasses.spawnAppleEnvActionBuilder(
ruleContext, appleConfiguration.getIosCpuPlatform())
.setMnemonic("ObjcLink")
- .setExecutable(xcrunwrapper(ruleContext))
+ .setExecutable(libtool(ruleContext))
.setCommandLine(new CustomCommandLine.Builder()
- .add(LIBTOOL)
.add("-static")
.add("-arch_only").add(appleConfiguration.getIosCpu())
.add("-syslibroot").add(AppleToolchain.sdkDir())