aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main
diff options
context:
space:
mode:
authorGravatar Cal Peyser <cpeyser@google.com>2017-01-24 16:25:44 +0000
committerGravatar Laszlo Csomor <laszlocsomor@google.com>2017-01-25 10:09:02 +0000
commit1da72a7784599adcdfca8c6fb3c2732115b0c2ab (patch)
tree53a0fdfff6a75a84f5fedf15fdb7241d0f74851e /src/main
parentce7c4deda60a307bba5f0c9421738e2a375cf44e (diff)
Testers using --experimental_objc_library will use apple crosstool
transition at the top level for the expanded set of apple rule classes -- PiperOrigin-RevId: 145421255 MOS_MIGRATED_REVID=145421255
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfigurationCollection.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/AppleCrosstoolTransition.java15
2 files changed, 13 insertions, 5 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfigurationCollection.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfigurationCollection.java
index 7afe5993b3..f9268f84fa 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfigurationCollection.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfigurationCollection.java
@@ -40,6 +40,7 @@ import com.google.devtools.build.lib.packages.Target;
import com.google.devtools.build.lib.rules.apple.AppleConfiguration;
import com.google.devtools.build.lib.rules.cpp.CppRuleClasses.LipoTransition;
import com.google.devtools.build.lib.rules.objc.AppleCrosstoolSplitTransition;
+import com.google.devtools.build.lib.rules.objc.AppleCrosstoolTransition;
import java.util.LinkedHashSet;
import java.util.Map;
import java.util.Set;
@@ -113,7 +114,7 @@ public class BazelConfigurationCollection implements ConfigurationCollectionFact
@Override
public BuildConfiguration toplevelConfigurationHook(Target toTarget) {
ImmutableList<String> appleCrosstoolRuleClasses =
- configuration.getFragment(AppleConfiguration.class).isAppleCrosstoolEnabled()
+ AppleCrosstoolTransition.shouldUseAppleCrosstoolTransition(configuration.getOptions())
? AppleConfiguration.APPLE_CROSSTOOL_RULE_CLASSES
: AppleConfiguration.APPLE_CROSSTOOL_RULE_CLASSES_FOR_STATIC_CONFIGS;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleCrosstoolTransition.java b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleCrosstoolTransition.java
index 9f93ca341b..953329563c 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleCrosstoolTransition.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleCrosstoolTransition.java
@@ -43,10 +43,7 @@ public class AppleCrosstoolTransition implements PatchTransition {
public BuildOptions apply(BuildOptions buildOptions) {
BuildOptions result = buildOptions.clone();
- if (!(buildOptions.get(AppleCommandLineOptions.class).enableAppleCrosstoolTransition
- || buildOptions.get(ObjcCommandLineOptions.class).experimentalObjcLibrary
- || buildOptions.get(ObjcCommandLineOptions.class).objcCrosstoolMode
- != ObjcCrosstoolMode.OFF)) {
+ if (!shouldUseAppleCrosstoolTransition(buildOptions)) {
return buildOptions;
}
@@ -88,4 +85,14 @@ public class AppleCrosstoolTransition implements PatchTransition {
// OSX toolchains do not support fission.
to.get(CppOptions.class).fissionModes = ImmutableList.of();
}
+
+ /**
+ * Returns true if the given options imply use of AppleCrosstoolTransition for all apple
+ * targets.
+ */
+ public static boolean shouldUseAppleCrosstoolTransition(BuildOptions options) {
+ return (options.get(AppleCommandLineOptions.class).enableAppleCrosstoolTransition
+ || options.get(ObjcCommandLineOptions.class).experimentalObjcLibrary
+ || options.get(ObjcCommandLineOptions.class).objcCrosstoolMode != ObjcCrosstoolMode.OFF);
+ }
}