Turn on objc crosstool use in Bazel by default.

PiperOrigin-RevId: 162388184
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommandLineOptions.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommandLineOptions.java
index 5e982eb..983e117c 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommandLineOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommandLineOptions.java
@@ -275,7 +275,7 @@
 
   @Option(
     name = "experimental_objc_crosstool",
-    defaultValue = "off",
+    defaultValue = "all",
     documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
     effectTags = {OptionEffectTag.CHANGES_INPUTS},
     metadataTags = {OptionMetadataTag.INCOMPATIBLE_CHANGE},
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibraryTest.java
index 887b941..19e2013 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibraryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibraryTest.java
@@ -26,9 +26,9 @@
 import com.google.devtools.build.lib.actions.CommandAction;
 import com.google.devtools.build.lib.analysis.ConfiguredTarget;
 import com.google.devtools.build.lib.analysis.actions.SymlinkAction;
-import com.google.devtools.build.lib.packages.util.MockObjcSupport;
 import com.google.devtools.build.lib.rules.apple.AppleConfiguration.ConfigurationDistinguisher;
 import com.google.devtools.build.lib.rules.cpp.CppLinkAction;
+import com.google.devtools.build.lib.rules.objc.ObjcCommandLineOptions.ObjcCrosstoolMode;
 import com.google.devtools.build.lib.testutil.Scratch;
 import java.io.IOException;
 import java.util.Set;
@@ -69,9 +69,7 @@
 
   @Test
   public void testCanUseCrosstool() throws Exception {
-    useConfiguration(
-        "--crosstool_top=" + MockObjcSupport.DEFAULT_OSX_CROSSTOOL,
-        "--experimental_objc_crosstool=all");
+    useConfiguration(ObjcCrosstoolMode.ALL);
     RULE_TYPE.scratchTarget(scratch, "srcs", "['a.m']");
 
     // If the target is indeed using the c++ backend, then its archive action should be a
@@ -84,10 +82,7 @@
 
   @Test
   public void testCanUseCrosstool_multiArch() throws Exception {
-    useConfiguration(
-        "--crosstool_top=" + MockObjcSupport.DEFAULT_OSX_CROSSTOOL,
-        "--experimental_objc_crosstool=all",
-        "--ios_multi_cpus=i386,x86_64");
+    useConfiguration(ObjcCrosstoolMode.ALL, "--ios_multi_cpus=i386,x86_64");
     RULE_TYPE.scratchTarget(scratch, "srcs", "['a.m']");
 
     // If the target is indeed using the c++ backend, then its archive action should be a
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java
index 6633fcc..5b71555 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java
@@ -50,6 +50,7 @@
 import com.google.devtools.build.lib.rules.apple.AppleToolchain;
 import com.google.devtools.build.lib.rules.cpp.CppCompileAction;
 import com.google.devtools.build.lib.rules.cpp.CppModuleMapAction;
+import com.google.devtools.build.lib.rules.objc.ObjcCommandLineOptions.ObjcCrosstoolMode;
 import com.google.devtools.build.lib.vfs.PathFragment;
 import com.google.devtools.common.options.OptionsParsingException;
 import java.util.Collections;
@@ -135,15 +136,13 @@
 
   @Test
   public void testObjcPlusPlusCompileDarwin() throws Exception {
-    useConfiguration(
-        "--crosstool_top=" + MockObjcSupport.DEFAULT_OSX_CROSSTOOL,
+    useConfiguration(ObjcCrosstoolMode.ALL,
         "--experimental_disable_go",
         "--cpu=darwin_x86_64",
         "--macos_minimum_os=9.10.11",
         // TODO(b/36126423): Darwin should imply macos, so the
         // following line should not be necessary.
-        "--apple_platform_type=macos",
-        "--experimental_objc_crosstool=all");
+        "--apple_platform_type=macos");
     createLibraryTargetWriter("//objc:lib")
         .setList("srcs", "a.mm")
         .write();
@@ -1549,9 +1548,8 @@
   public void testSysrootArgSpecifiedWithGrteTopFlag() throws Exception {
     MockObjcSupport.setup(mockToolsConfig, "default_grte_top : '//x'");
     useConfiguration(
-        "--crosstool_top=" + MockObjcSupport.DEFAULT_OSX_CROSSTOOL,
+        ObjcCrosstoolMode.ALL,
         "--experimental_disable_go",
-        "--experimental_objc_crosstool=all",
         "--cpu=ios_x86_64",
         "--ios_cpu=x86_64");
     scratch.file(
@@ -1582,9 +1580,8 @@
         "  }",
         "}");
     useConfiguration(
-        "--crosstool_top=" + MockObjcSupport.DEFAULT_OSX_CROSSTOOL,
+        ObjcCrosstoolMode.ALL,
         "--experimental_disable_go",
-        "--experimental_objc_crosstool=all",
         "--cpu=ios_x86_64",
         "--ios_cpu=x86_64");
     scratch.file(
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcRuleTestCase.java b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcRuleTestCase.java
index 2c82883..c576d42 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcRuleTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcRuleTestCase.java
@@ -364,13 +364,18 @@
   protected void useConfiguration(ObjcCrosstoolMode objcCrosstoolMode, String... args)
       throws Exception {
     ImmutableList.Builder<String> extraArgsBuilder = ImmutableList.builder();
-    if (objcCrosstoolMode != ObjcCrosstoolMode.OFF) {
-      String crosstoolModeFlag =
-          objcCrosstoolMode == ObjcCrosstoolMode.ALL
-              ? "--experimental_objc_crosstool=all"
-              : "--experimental_objc_crosstool=library";
-      extraArgsBuilder.add(crosstoolModeFlag);
+    switch(objcCrosstoolMode) {
+      case ALL:
+        extraArgsBuilder.add("--experimental_objc_crosstool=all");
+        break;
+      case LIBRARY:
+        extraArgsBuilder.add("--experimental_objc_crosstool=library");
+        break;
+      case OFF:
+        extraArgsBuilder.add("--experimental_objc_crosstool=off");
+        break;
     }
+
     extraArgsBuilder
         .add("--experimental_disable_go")
         .add("--crosstool_top=" + MockObjcSupport.DEFAULT_OSX_CROSSTOOL);
@@ -4674,9 +4679,7 @@
   }
 
   public void checkLinkingRuleCanUseCrosstool(RuleType ruleType) throws Exception {
-    useConfiguration(
-        "--crosstool_top=" + MockObjcSupport.DEFAULT_OSX_CROSSTOOL,
-        "--experimental_objc_crosstool=all");
+    useConfiguration(ObjcCrosstoolMode.ALL);
     ruleType.scratchTarget(scratch, "srcs", "['a.m']");
     ConfiguredTarget target = getConfiguredTarget("//x:x");
 
@@ -4687,9 +4690,7 @@
   }
 
   public void checkLinkingRuleCanUseCrosstool_singleArch(RuleType ruleType) throws Exception {
-    useConfiguration(
-        "--crosstool_top=" + MockObjcSupport.DEFAULT_OSX_CROSSTOOL,
-        "--experimental_objc_crosstool=all");
+    useConfiguration(ObjcCrosstoolMode.ALL);
     ruleType.scratchTarget(scratch, "srcs", "['a.m']");
 
     // If bin is indeed using the c++ backend, then its archive action should be a CppLinkAction.
@@ -4702,10 +4703,7 @@
   }
 
   public void checkLinkingRuleCanUseCrosstool_multiArch(RuleType ruleType) throws Exception {
-    useConfiguration(
-        "--crosstool_top=" + MockObjcSupport.DEFAULT_OSX_CROSSTOOL,
-        "--experimental_objc_crosstool=all",
-        "--ios_multi_cpus=i386,x86_64");
+    useConfiguration(ObjcCrosstoolMode.ALL, "--ios_multi_cpus=i386,x86_64");
     ruleType.scratchTarget(scratch, "srcs", "['a.m']");
 
     // If bin is indeed using the c++ backend, then its archive action should be a CppLinkAction.