aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules
diff options
context:
space:
mode:
authorGravatar Dave MacLachlan <dmaclach@google.com>2015-09-21 22:39:51 +0000
committerGravatar Laszlo Csomor <laszlocsomor@google.com>2015-09-22 17:06:01 +0000
commit8e055ba53848bc78a95e54c0d91c021bcc82b9c4 (patch)
tree341cefa378dc4f43b17a999517ecbc6e70c65b1d /src/main/java/com/google/devtools/build/lib/rules
parentbe117336c9c8f4b663bdd33bab3bd27dce223673 (diff)
Changes dylibs from being part of the xcodeproject file references to being arguments to OTHER_LDFLAGS. Command lines now use -l"name" to link libraries. This solves the problem that libraries in Xcode 7 now have .tbd files instead of dylibs in device builds and maintains backwards compatibility with Xcode 6.
Also modifies Bazel Objclink action to pass in libraries as -l"name" arguments. RELNOTES:Adds support for dylibs on devices for Xcode 7. -- MOS_MIGRATED_REVID=103589448
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java13
1 files changed, 8 insertions, 5 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 57de1fdd9d..1ea050a779 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
@@ -722,11 +722,11 @@ public final class CompilationSupport {
.add(IosSdkCommands.DEFAULT_LINKER_FLAGS)
.addBeforeEach("-framework", frameworkNames(objcProvider))
.addBeforeEach("-weak_framework", SdkFramework.names(objcProvider.get(WEAK_SDK_FRAMEWORK)))
+ .addFormatEach("-l%s", libraryNames(objcProvider))
.addExecPath("-o", linkedBinary)
.addExecPaths(objcProvider.get(LIBRARY))
.addExecPaths(objcProvider.get(IMPORTED_LIBRARY))
.addExecPaths(ccLibraries)
- .add(dylibPaths(objcProvider))
.addBeforeEach("-force_load", Artifact.toExecPaths(objcProvider.get(FORCE_LOAD_LIBRARY)))
.add(extraLinkArgs)
.build();
@@ -785,12 +785,15 @@ public final class CompilationSupport {
}
}
- private Iterable<String> dylibPaths(ObjcProvider objcProvider) {
- ObjcConfiguration objcConfiguration = ObjcRuleClasses.objcConfiguration(ruleContext);
+ private Iterable<String> libraryNames(ObjcProvider objcProvider) {
ImmutableList.Builder<String> args = new ImmutableList.Builder<>();
for (String dylib : objcProvider.get(SDK_DYLIB)) {
- args.add(String.format(
- "%s/usr/lib/%s.dylib", IosSdkCommands.sdkDir(objcConfiguration), dylib));
+ if (dylib.startsWith("lib")) {
+ // remove lib prefix if it exists which is standard
+ // for libraries (libxml.dylib -> -lxml).
+ dylib = dylib.substring(3);
+ }
+ args.add(dylib);
}
return args.build();
}