aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google
diff options
context:
space:
mode:
authorGravatar Dmitry Shevchenko <dmishe@google.com>2016-10-04 01:16:16 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2016-10-04 08:56:38 +0000
commit25b952b8fec4a3e514b4f91fbbd5e5133fcab4b7 (patch)
treea77991ffd27f0283edecc9307ff8e51536a1fd6a /src/main/java/com/google
parentdeeeb31f8ba0f196fbc9ca2a177d59d57ea50b32 (diff)
*** Reason for rollback *** Breaks builds with current blaze *** Original change description *** Add a way to select non-default Xcode toolchain * Adds a flag --xcode_toolchain which sets TOOLCHAINS env variable for xcrun. * Updates swift_library to work with this flag when selecting Swift runtime location. * By default the flag has a null value and is not set in env. -- MOS_MIGRATED_REVID=135053864
Diffstat (limited to 'src/main/java/com/google')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/apple/AppleCommandLineOptions.java11
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java13
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java19
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java44
4 files changed, 17 insertions, 70 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleCommandLineOptions.java b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleCommandLineOptions.java
index 3d71ca5ad8..5d2830a049 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleCommandLineOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleCommandLineOptions.java
@@ -227,17 +227,6 @@ public class AppleCommandLineOptions extends FragmentOptions {
}
}
- @Option(
- name = "xcode_toolchain",
- defaultValue = "null",
- category = "flags",
- help = "The identifier of an Xcode toolchain to use for builds. Currently only the toolchains "
- + "that ship with Xcode are supported. For example, in addition to the default toolchain"
- + " Xcode 8 has 'com.apple.dt.toolchain.Swift_2_3' which can be used for building legacy"
- + " Swift code."
- )
- public String xcodeToolchain;
-
@Option(name = "apple_bitcode",
converter = AppleBitcodeMode.Converter.class,
// TODO(blaze-team): Default to embedded_markers when fully implemented.
diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java
index e0d242703f..59a6fc1403 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java
@@ -84,7 +84,6 @@ public class AppleConfiguration extends BuildConfiguration.Fragment {
private final ImmutableList<String> tvosCpus;
private final AppleBitcodeMode bitcodeMode;
private final Label xcodeConfigLabel;
- @Nullable private final String xcodeToolchain;
@Nullable private final Label defaultProvisioningProfileLabel;
private final boolean disableNativeSwiftRules;
@@ -128,7 +127,6 @@ public class AppleConfiguration extends BuildConfiguration.Fragment {
this.xcodeConfigLabel =
Preconditions.checkNotNull(appleOptions.xcodeVersionConfig, "xcodeConfigLabel");
this.defaultProvisioningProfileLabel = appleOptions.defaultProvisioningProfile;
- this.xcodeToolchain = appleOptions.xcodeToolchain;
this.disableNativeSwiftRules = appleOptions.disableNativeSwiftRules;
}
@@ -521,17 +519,6 @@ public class AppleConfiguration extends BuildConfiguration.Fragment {
return Joiner.on('-').join(components);
}
- /** Returns the identifier for an Xcode toolchain to use with tools. */
- @SkylarkCallable(
- name = "xcode_toolchain",
- doc = "Identifier for the custom Xcode toolchain to use in build or None if not specified",
- allowReturnNones = true,
- structField = true
- )
- public String getXcodeToolchain() {
- return xcodeToolchain;
- }
-
/**
* Whether the native Swift support should be disabled. Used to deprecate said functionality.
*/
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 8136e837ca..fa16aaf3f9 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
@@ -1445,22 +1445,9 @@ public final class CompilationSupport {
}
if (objcProvider.is(USES_SWIFT)) {
- // Check if there's a swift library path already. If that's not the case - fall back to
- // the default one. This is for backwards compatibility with Swift native rules.
- // TODO(b/30281236): Remove when native Swift is deprecated.
- boolean swiftLibDirSet = false;
- for (String arg : objcProvider.get(ObjcProvider.LINKOPT)) {
- if (arg.startsWith("-L") && arg.contains("usr/lib/swift")) {
- swiftLibDirSet = true;
- break;
- }
- }
-
- if (!swiftLibDirSet) {
- commandLine
- .add("-L")
- .add(AppleToolchain.swiftLibDir(appleConfiguration.getSingleArchPlatform()));
- }
+ commandLine
+ .add("-L")
+ .add(AppleToolchain.swiftLibDir(appleConfiguration.getSingleArchPlatform()));
}
for (String linkopt : attributes.linkopts()) {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java
index 4cf8e6264f..009b3fddfe 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java
@@ -1058,21 +1058,13 @@ public final class ReleaseBundlingSupport {
return;
}
- AppleConfiguration appleConfiguration = ruleContext.getFragment(AppleConfiguration.class);
-
- CustomCommandLine.Builder commandLine = CustomCommandLine.builder();
- if (appleConfiguration.getXcodeToolchain() != null) {
- commandLine.add("--toolchain").add(appleConfiguration.getXcodeToolchain());
- }
-
- commandLine
- .add("--output_zip_path")
- .addPath(intermediateArtifacts.swiftFrameworksFileZip().getExecPath())
- .add("--bundle_path")
- .add("Frameworks")
- .add("--platform")
- .add(platform.getLowerCaseNameInPlist())
- .addExecPath("--scan-executable", combinedArchBinary);
+ CustomCommandLine.Builder commandLine =
+ CustomCommandLine.builder()
+ .addPath(intermediateArtifacts.swiftFrameworksFileZip().getExecPath())
+ .add("Frameworks")
+ .add("--platform")
+ .add(platform.getLowerCaseNameInPlist())
+ .addExecPath("--scan-executable", combinedArchBinary);
ruleContext.registerAction(
ObjcRuleClasses.spawnAppleEnvActionBuilder(ruleContext, platform)
@@ -1090,21 +1082,13 @@ public final class ReleaseBundlingSupport {
return;
}
- AppleConfiguration configuration = ruleContext.getFragment(AppleConfiguration.class);
-
- CustomCommandLine.Builder commandLine = CustomCommandLine.builder();
- if (configuration.getXcodeToolchain() != null) {
- commandLine.add("--toolchain").add(configuration.getXcodeToolchain());
- }
-
- commandLine
- .add("--output_zip_path")
- .addPath(intermediateArtifacts.swiftSupportZip().getExecPath())
- .add("--bundle_path")
- .add("SwiftSupport/" + platform.getLowerCaseNameInPlist())
- .add("--platform")
- .add(platform.getLowerCaseNameInPlist())
- .addExecPath("--scan-executable", combinedArchBinary);
+ CustomCommandLine.Builder commandLine =
+ CustomCommandLine.builder()
+ .addPath(intermediateArtifacts.swiftSupportZip().getExecPath())
+ .add("SwiftSupport/" + platform.getLowerCaseNameInPlist())
+ .add("--platform")
+ .add(platform.getLowerCaseNameInPlist())
+ .addExecPath("--scan-executable", combinedArchBinary);
ruleContext.registerAction(
ObjcRuleClasses.spawnAppleEnvActionBuilder(ruleContext, platform)