aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com
diff options
context:
space:
mode:
authorGravatar Chris Parsons <cparsons@google.com>2015-12-08 20:24:01 +0000
committerGravatar David Chen <dzc@google.com>2015-12-08 22:26:45 +0000
commitdfa6368490224a2f98d967736cef5803a82c3989 (patch)
tree5f55f6131a378514afb40f0dd3ad1d012e915eba /src/main/java/com
parentdc89673ae8cb37a60ddad83949c776c4d369b8fb (diff)
Find frameworks in System/ instead of in Developer/ for ios sdks 9.0 and later
-- MOS_MIGRATED_REVID=109715685
Diffstat (limited to 'src/main/java/com')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/apple/AppleToolchain.java28
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java5
2 files changed, 29 insertions, 4 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleToolchain.java b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleToolchain.java
index 19693a9973..89b04da680 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleToolchain.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleToolchain.java
@@ -14,6 +14,7 @@
package com.google.devtools.build.lib.rules.apple;
+import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Function;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Iterables;
@@ -29,6 +30,12 @@ public class AppleToolchain {
private static final String DEVELOPER_DIR = "__BAZEL_XCODE_DEVELOPER_DIR__";
private static final String SDKROOT_DIR = "__BAZEL_XCODE_SDKROOT__";
+ // These two paths are framework paths relative to SDKROOT.
+ @VisibleForTesting
+ public static final String DEVELOPER_FRAMEWORK_PATH = "/Developer/Library/Frameworks";
+ @VisibleForTesting
+ public static final String SYSTEM_FRAMEWORK_PATH = "/System/Library/Frameworks";
+
// There is a handy reference to many clang warning flags at
// http://nshipster.com/clang-diagnostics/
// There is also a useful narrative for many Xcode settings at
@@ -95,8 +102,25 @@ public class AppleToolchain {
/**
* Returns the SDK frameworks directory inside of Xcode for a given configuration.
*/
- public static String sdkDeveloperFrameworkDir() {
- return sdkDir() + "/Developer/Library/Frameworks";
+ public static String sdkFrameworkDir(Platform targetPlatform,
+ AppleConfiguration configuration) {
+ String relativePath;
+ switch (targetPlatform) {
+ case IOS_DEVICE:
+ case IOS_SIMULATOR:
+ if (configuration.getIosSdkVersion().compareTo(DottedVersion.fromString("9.0")) >= 0) {
+ relativePath = SYSTEM_FRAMEWORK_PATH;
+ } else {
+ relativePath = DEVELOPER_FRAMEWORK_PATH;
+ }
+ break;
+ case MACOSX:
+ relativePath = DEVELOPER_FRAMEWORK_PATH;
+ break;
+ default:
+ throw new IllegalArgumentException("Unhandled platform " + targetPlatform);
+ }
+ return sdkDir() + relativePath;
}
/**
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 40260085e1..b5f134b46f 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
@@ -1306,7 +1306,8 @@ public final class CompilationSupport {
ObjcProvider provider, ObjcConfiguration objcConfiguration,
AppleConfiguration appleConfiguration) {
ImmutableList.Builder<String> builder = new ImmutableList.Builder<>();
- if (Platform.forIosArch(appleConfiguration.getIosCpu()) == Platform.IOS_SIMULATOR) {
+ Platform platform = Platform.forIosArch(appleConfiguration.getIosCpu());
+ if (platform == Platform.IOS_SIMULATOR) {
builder.add("-mios-simulator-version-min=" + objcConfiguration.getMinimumOs());
} else {
builder.add("-miphoneos-version-min=" + objcConfiguration.getMinimumOs());
@@ -1320,7 +1321,7 @@ public final class CompilationSupport {
.add("-arch", appleConfiguration.getIosCpu())
.add("-isysroot", AppleToolchain.sdkDir())
// TODO(bazel-team): Pass framework search paths to Xcodegen.
- .add("-F", AppleToolchain.sdkDeveloperFrameworkDir())
+ .add("-F", AppleToolchain.sdkFrameworkDir(platform, appleConfiguration))
// As of sdk8.1, XCTest is in a base Framework dir
.add("-F", AppleToolchain.platformDeveloperFrameworkDir(appleConfiguration))
// Add custom (non-SDK) framework search paths. For each framework foo/bar.framework,