diff options
author | Cal Peyser <cpeyser@google.com> | 2017-01-24 16:25:44 +0000 |
---|---|---|
committer | Laszlo Csomor <laszlocsomor@google.com> | 2017-01-25 10:09:02 +0000 |
commit | 1da72a7784599adcdfca8c6fb3c2732115b0c2ab (patch) | |
tree | 53a0fdfff6a75a84f5fedf15fdb7241d0f74851e /src/main | |
parent | ce7c4deda60a307bba5f0c9421738e2a375cf44e (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.java | 3 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/objc/AppleCrosstoolTransition.java | 15 |
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); + } } |