Remove the --apple_crosstool_in_output_directory_flag.

This is an encore of https://github.com/bazelbuild/bazel/commit/8fda9f44bd463e87208cb3eab62f8cab36aa9767, which was erroneously rolled back.

RELNOTES: None.
PiperOrigin-RevId: 211796863
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 af55552..70b0b98 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
@@ -320,36 +320,7 @@
             + "Values: 'none', 'embedded_markers', 'embedded'."
   )
   public AppleBitcodeMode appleBitcodeMode;
-
-  @Option(
-    name = "apple_crosstool_transition",
-    defaultValue = "true",
-    documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
-    effectTags = {OptionEffectTag.CHANGES_INPUTS},
-    metadataTags = {OptionMetadataTag.INCOMPATIBLE_CHANGE},
-    help = "If true, the apple crosstool is used for all apple rules."
-  )
-  public boolean enableAppleCrosstoolTransition;
-
-  @Option(
-      name = "apple_crosstool_in_output_directory_name",
-      defaultValue = "false",
-      documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
-      effectTags =  {OptionEffectTag.LOADING_AND_ANALYSIS},
-      metadataTags = {OptionMetadataTag.INCOMPATIBLE_CHANGE},
-      help = "If true, all Apple configurations have a different output directory than non-Apple "
-          + "ones")
-  public boolean appleCrosstoolInOutputDirectoryName;
-
-  @Option(
-    name = "target_uses_apple_crosstool",
-    defaultValue = "false",
-    documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
-    effectTags = {OptionEffectTag.BAZEL_INTERNAL_CONFIGURATION},
-    help = "If true, this target uses the apple crosstool.  Do not set this flag manually."
-  )
-  public boolean targetUsesAppleCrosstool;
-
+  
   /** Returns whether the minimum OS version is explicitly set for the current platform. */
   public DottedVersion getMinimumOsVersion() {
     switch (applePlatformType) {
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 27ceffe..62e2143 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
@@ -75,7 +75,6 @@
   private final ImmutableList<String> macosCpus;
   private final AppleBitcodeMode bitcodeMode;
   private final Label xcodeConfigLabel;
-  private final boolean enableAppleCrosstool;
   private final AppleCommandLineOptions options;
   @Nullable private final Label defaultProvisioningProfileLabel;
   private final boolean mandatoryMinimumVersion;
@@ -103,7 +102,6 @@
     this.bitcodeMode = options.appleBitcodeMode;
     this.xcodeConfigLabel =
         Preconditions.checkNotNull(options.xcodeVersionConfig, "xcodeConfigLabel");
-    this.enableAppleCrosstool = options.enableAppleCrosstoolTransition;
     this.defaultProvisioningProfileLabel = options.defaultProvisioningProfile;
     this.mandatoryMinimumVersion = options.mandatoryMinimumVersion;
     this.objcProviderFromLinked = options.objcProviderFromLinked;
@@ -383,21 +381,6 @@
     return xcodeConfigLabel;
   }
 
-  private boolean shouldDistinguishOutputDirectory() {
-    if (options.appleCrosstoolInOutputDirectoryName) {
-      return configurationDistinguisher != ConfigurationDistinguisher.UNKNOWN;
-    } else {
-      if (configurationDistinguisher == ConfigurationDistinguisher.UNKNOWN) {
-        return false;
-      } else if (configurationDistinguisher == ConfigurationDistinguisher.APPLE_CROSSTOOL
-          && enableAppleCrosstool) {
-        return false;
-      } else {
-        return true;
-      }
-    }
-  }
-
   @Nullable
   @Override
   public String getOutputDirectoryName() {
@@ -410,7 +393,7 @@
         components.add("min" + options.getMinimumOsVersion());
       }
     }
-    if (shouldDistinguishOutputDirectory()) {
+    if (configurationDistinguisher != ConfigurationDistinguisher.UNKNOWN) {
       components.add(configurationDistinguisher.getFileSystemName());
     }
 
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 d7cb930..a32d0d0 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
@@ -44,17 +44,11 @@
     AppleCommandLineOptions appleOptions = buildOptions.get(AppleCommandLineOptions.class);
     BuildConfiguration.Options configOptions = buildOptions.get(BuildConfiguration.Options.class);
 
-    if (appleOptions.appleCrosstoolInOutputDirectoryName) {
-      if (appleOptions.configurationDistinguisher != ConfigurationDistinguisher.UNKNOWN) {
-        // The configuration distinguisher is only set by AppleCrosstoolTransition and
-        // AppleBinaryTransition, both of which also set the Crosstool and the CPU to Apple ones.
-        // So we are fine not doing anything.
-        return buildOptions;
-      }
-    } else {
-      if (!appleCrosstoolTransitionIsAppliedForAllObjc(buildOptions)) {
-        return buildOptions;
-      }
+    if (appleOptions.configurationDistinguisher != ConfigurationDistinguisher.UNKNOWN) {
+      // The configuration distinguisher is only set by AppleCrosstoolTransition and
+      // AppleBinaryTransition, both of which also set the Crosstool and the CPU to Apple ones.
+      // So we are fine not doing anything.
+      return buildOptions;
     }
 
     String cpu =
@@ -81,25 +75,20 @@
     BuildConfiguration.Options toOptions = to.get(BuildConfiguration.Options.class);
     CppOptions toCppOptions = to.get(CppOptions.class);
 
-    if (toOptions.cpu.equals(cpu) && toCppOptions.crosstoolTop.equals(crosstoolTop)
-        && from.get(AppleCommandLineOptions.class).appleCrosstoolInOutputDirectoryName) {
+    if (toOptions.cpu.equals(cpu) && toCppOptions.crosstoolTop.equals(crosstoolTop)) {
       // If neither the CPU nor the Crosstool changes, do nothing. This is so that C++ to
       // Objective-C dependencies work if the top-level configuration is already an Apple one.
-      // This is arguably a hack, but it helps with rolling out
-      // --apple_crosstool_in_output_directory_name, which in turn helps with removing the
-      // configuration distinguisher (which can't be set from the command line) and putting the
-      // platform type in the output directory name, which would obviate the need for this hack.
+      // Removing the configuration distinguisher (which can't be set from the command line) and
+      // putting the platform type in the output directory name, which would obviate the need for
+      // this hack.
       // TODO(b/112834725): Remove this branch by unifying the distinguisher and the platform type.
       return;
     }
 
     toOptions.cpu = cpu;
     toCppOptions.crosstoolTop = crosstoolTop;
-    to.get(AppleCommandLineOptions.class).targetUsesAppleCrosstool = true;
-    if (from.get(AppleCommandLineOptions.class).appleCrosstoolInOutputDirectoryName) {
-      to.get(AppleCommandLineOptions.class).configurationDistinguisher =
-          ConfigurationDistinguisher.APPLE_CROSSTOOL;
-    }
+    to.get(AppleCommandLineOptions.class).configurationDistinguisher =
+        ConfigurationDistinguisher.APPLE_CROSSTOOL;
 
     // --compiler = "compiler" for all OSX toolchains.  We do not support asan/tsan, cfi, etc. on
     // darwin.
@@ -114,13 +103,6 @@
   }
 
   /**
-   * Returns true if the given options imply use of AppleCrosstoolTransition for all apple targets.
-   */
-  public static boolean appleCrosstoolTransitionIsAppliedForAllObjc(BuildOptions options) {
-    return options.get(AppleCommandLineOptions.class).enableAppleCrosstoolTransition;
-  }
-
-  /**
    * Returns the Apple architecture implied by AppleCommandLineOptions and
    * BuildConfiguration.Options
    */
diff --git a/src/test/java/com/google/devtools/build/lib/rules/apple/AppleConfigurationSerializationTest.java b/src/test/java/com/google/devtools/build/lib/rules/apple/AppleConfigurationSerializationTest.java
index 444f581..61e94f9 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/apple/AppleConfigurationSerializationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/apple/AppleConfigurationSerializationTest.java
@@ -65,8 +65,6 @@
         Label.parseAbsoluteUnchecked("//default/provisioning");
     firstOptions.xcodeVersionConfig = Label.parseAbsoluteUnchecked("//xcode/version:config");
     firstOptions.appleBitcodeMode = AppleCommandLineOptions.AppleBitcodeMode.EMBEDDED_MARKERS;
-    firstOptions.enableAppleCrosstoolTransition = false;
-    firstOptions.targetUsesAppleCrosstool = true;
     firstOptions.xcodeVersion = "1.0";
     try {
       return ImmutableList.of(
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcBuildVariablesTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcBuildVariablesTest.java
index 689bbb5..ec0ca56 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcBuildVariablesTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcBuildVariablesTest.java
@@ -148,7 +148,6 @@
     String dummyMinimumOsValue = "13.579";
     useConfiguration(
         "--crosstool_top=//tools/osx/crosstool",
-        "--apple_crosstool_transition",
         "--cpu=darwin_x86_64",
         "--macos_minimum_os=" + dummyMinimumOsValue);
     scratch.file(
@@ -214,7 +213,6 @@
     String dummyMinimumOsValue = "13.579";
     useConfiguration(
         "--crosstool_top=//tools/osx/crosstool",
-        "--apple_crosstool_transition",
         "--cpu=darwin_x86_64");
     scratch.file(
         "x/BUILD",
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 40b5e17..07e9ad3 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
@@ -100,7 +100,6 @@
         ")");
 
     useConfiguration(
-        "--apple_crosstool_in_output_directory_name",
         "--cpu=ios_x86_64",
         "--crosstool_top=" + MockObjcSupport.DEFAULT_OSX_CROSSTOOL);
 
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibraryTest.java
index 0501930..c0613e6 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibraryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibraryTest.java
@@ -461,7 +461,7 @@
 
   @Test
   public void testCompilationAction() throws Exception {
-    useConfiguration("--cpu=ios_i386", "--apple_crosstool_in_output_directory_name");
+    useConfiguration("--cpu=ios_i386");
     ApplePlatform platform = ApplePlatform.IOS_SIMULATOR;
 
     // Because protos are linked/compiled within the apple_binary context, we need to traverse the
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 2090c76..9965099 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
@@ -2113,7 +2113,6 @@
   private void checkCustomModuleMap(RuleType ruleType, boolean targetUnderTestShouldPropagate)
       throws Exception {
     useConfiguration(
-        "--apple_crosstool_in_output_directory_name",
         "--experimental_objc_enable_module_maps",
         "--incompatible_strict_objc_module_maps");
     ruleType.scratchTarget(scratch, "deps", "['//z:a']");
diff --git a/src/test/shell/bazel/apple/bazel_apple_test.sh b/src/test/shell/bazel/apple/bazel_apple_test.sh
index a84daa8..2182081 100755
--- a/src/test/shell/bazel/apple/bazel_apple_test.sh
+++ b/src/test/shell/bazel/apple/bazel_apple_test.sh
@@ -169,7 +169,6 @@
 EOF
 
   bazel build --verbose_failures //package:lipo_out \
-    --apple_crosstool_transition \
     --ios_multi_cpus=i386,x86_64 \
     --xcode_version=$XCODE_VERSION \
     || fail "should build apple_binary and obtain info via lipo"
@@ -244,7 +243,6 @@
 EOF
 
   bazel build --verbose_failures //package:lipo_out \
-      --apple_crosstool_transition \
       --watchos_cpus=armv7k \
       --xcode_version=$XCODE_VERSION \
       || fail "should build watch binary"
@@ -253,7 +251,6 @@
       || fail "expected output binary to be for armv7k architecture"
 
   bazel build --verbose_failures //package:lipo_out \
-      --apple_crosstool_transition \
       --watchos_cpus=i386 \
       --xcode_version=$XCODE_VERSION \
       || fail "should build watch binary"
@@ -378,7 +375,6 @@
 EOF
 
   bazel build --verbose_failures //package:main_binary \
-      --apple_crosstool_transition \
       --ios_multi_cpus=i386,x86_64 \
       --xcode_version=$XCODE_VERSION \
       --apple_generate_dsym=true \
@@ -407,7 +403,6 @@
 EOF
 
   bazel build --verbose_failures //package:main_binary \
-      --apple_crosstool_transition \
       --ios_multi_cpus=i386,x86_64 \
       --xcode_version=$XCODE_VERSION \
       --apple_generate_dsym=true \
@@ -433,7 +428,6 @@
 EOF
 
   bazel build --verbose_failures //package:static_lib \
-      --apple_crosstool_transition \
       --ios_multi_cpus=i386,x86_64 \
       --ios_minimum_os=8.0 \
       --xcode_version=$XCODE_VERSION \
diff --git a/src/test/shell/bazel/apple/bazel_objc_test.sh b/src/test/shell/bazel/apple/bazel_objc_test.sh
index 09dd053..04ab117 100755
--- a/src/test/shell/bazel/apple/bazel_objc_test.sh
+++ b/src/test/shell/bazel/apple/bazel_objc_test.sh
@@ -49,7 +49,7 @@
   setup_objc_test_support
   make_lib
 
-  bazel build --verbose_failures --apple_crosstool_in_output_directory_name \
+  bazel build --verbose_failures \
       --ios_sdk_version=$IOS_SDK_VERSION \
       //ios:lib >$TEST_log 2>&1 || fail "should pass"
   ls bazel-out/apl-ios_x86_64-fastbuild/bin/ios/liblib.a \
@@ -102,7 +102,7 @@
 }
 EOF
 
-  bazel build --verbose_failures --apple_crosstool_in_output_directory_name \
+  bazel build --verbose_failures \
       --ios_sdk_version=$IOS_SDK_VERSION //objclib:objclib >"$TEST_log" 2>&1 \
       || fail "Should build objc_library"