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"