Automated rollback of commit f06418470988721c8c3efe38723f910989180ad4.
*** Reason for rollback ***
Causes a significant performance regression in Blaze; see b/300864946 .
*** Original change description ***
Add an is_android option to facilitate exec toolchain selection
RELNOTES:None.
PiperOrigin-RevId: 566535845
Change-Id: Iaeab16348d5ea7c0e85e7e95aa4b6ceafe6a4b00
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java
index a935142..8190f51 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java
@@ -1108,19 +1108,6 @@
+ " transition` with changed options to avoid potential action conflicts.")
public boolean androidPlatformsTransitionsUpdateAffected;
- @Option(
- name = "is_android",
- defaultValue = "false",
- documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
- effectTags = OptionEffectTag.BAZEL_INTERNAL_CONFIGURATION,
- help =
- "This option exists for the purposes of enabling the toolchain resolution mechanism"
- + " to select a different `exec` toolchain when targeting Android. An example use"
- + " case is Rust: The Rust toolchain has a requirement that certain types of"
- + " libraries (proc-macro) that are built in `exec` mode *have* to be compiled with"
- + " the same toolchain as the libraries built in `target` mode.")
- public boolean isAndroid;
-
@Override
public FragmentOptions getExec() {
Options exec = (Options) super.getExec();
@@ -1151,7 +1138,6 @@
exec.persistentBusyboxTools = persistentBusyboxTools;
exec.persistentMultiplexBusyboxTools = persistentMultiplexBusyboxTools;
exec.disableNativeAndroidRules = disableNativeAndroidRules;
- exec.isAndroid = isAndroid;
// Unless the build was started from an Android device, exec means MAIN.
exec.configurationDistinguisher = ConfigurationDistinguisher.MAIN;
@@ -1208,7 +1194,6 @@
private final boolean hwasan;
private final boolean getJavaResourcesFromOptimizedJar;
private final boolean includeProguardLocationReferences;
- private final boolean isAndroid;
public AndroidConfiguration(BuildOptions buildOptions) throws InvalidConfigurationException {
Options options = buildOptions.get(Options.class);
@@ -1270,7 +1255,6 @@
this.hwasan = options.hwasan;
this.getJavaResourcesFromOptimizedJar = options.getJavaResourcesFromOptimizedJar;
this.includeProguardLocationReferences = options.includeProguardLocationReferences;
- this.isAndroid = options.isAndroid;
if (incrementalDexingShardsAfterProguard < 0) {
throw new InvalidConfigurationException(
@@ -1561,10 +1545,6 @@
return outputLibraryMergedAssets;
}
- boolean isAndroid() {
- return isAndroid;
- }
-
/** Returns the label provided with --legacy_main_dex_list_generator, if any. */
// TODO(b/147692286): Move R8's main dex list tool into tool repository.
@StarlarkConfigurationField(
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidPlatformsTransition.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidPlatformsTransition.java
index da3c171..8eaa077 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidPlatformsTransition.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidPlatformsTransition.java
@@ -74,7 +74,7 @@
// 2. Otherwise, leave --platforms alone (this will probably lead to build errors).
if (!androidOptions.androidPlatforms.isEmpty()) {
// If the current value of --platforms is not one of the values of --android_platforms, change
- // it to be the first one. If the current --platforms is part of --android_platforms, leave it
+ // it to be the first one. If the curent --platforms is part of --android_platforms, leave it
// as-is.
// NOTE: This does not handle aliases at all, so if someone is using aliases with platform
// definitions this check will break.
@@ -90,8 +90,6 @@
newOptions.get(CppOptions.class).enableCcToolchainResolution = true;
}
- newOptions.get(AndroidConfiguration.Options.class).isAndroid = true;
-
if (androidOptions.androidPlatformsTransitionsUpdateAffected) {
ImmutableSet.Builder<String> affected = ImmutableSet.builder();
if (!options
@@ -104,10 +102,6 @@
!= newOptions.get(CppOptions.class).enableCcToolchainResolution) {
affected.add("//command_line_option:incompatible_enable_cc_toolchain_resolution");
}
- if (options.get(AndroidConfiguration.Options.class).isAndroid
- != newOptions.get(AndroidConfiguration.Options.class).isAndroid) {
- affected.add("//command_line_option:is_android");
- }
FunctionTransitionUtil.updateAffectedByStarlarkTransition(
newOptions.get(CoreOptions.class), affected.build());
}
diff --git a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidDataBindingV2Test.java b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidDataBindingV2Test.java
index 6fd60d4..bcb616c 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidDataBindingV2Test.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidDataBindingV2Test.java
@@ -339,7 +339,7 @@
(JavaCompileAction)
getGeneratingAction(getFirstArtifactEndingWith(allArtifacts, "app.jar"));
String dataBindingFilesDir =
- getConfiguration(ctapp)
+ targetConfig
.getBinDirectory(RepositoryName.MAIN)
.getExecPath()
.getRelative("java/android/binary/databinding/app")
@@ -1214,7 +1214,7 @@
getGeneratingAction(
getFirstArtifactEndingWith(allArtifacts, "databinding_enabled_test-class.jar"));
String dataBindingFilesDir =
- getConfiguration(testTarget)
+ targetConfig
.getBinDirectory(RepositoryName.MAIN)
.getExecPath()
.getRelative("javatests/android/test/databinding/databinding_enabled_test")
diff --git a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidInstrumentationTestTest.java b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidInstrumentationTestTest.java
index 768aafc..aa62bf9 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidInstrumentationTestTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidInstrumentationTestTest.java
@@ -190,10 +190,7 @@
.toList());
assertThat(runfiles.stream().map(Artifact::toString).collect(toImmutableList()))
.containsAtLeast(
- getDeviceFixtureScript(
- getDirectPrerequisite(
- androidInstrumentationTest.getConfiguredTarget(),
- "//javatests/com/app:device_fixture"))
+ getDeviceFixtureScript(getConfiguredTarget("//javatests/com/app:device_fixture"))
.toString(),
getInstrumentationApk(getConfiguredTarget("//javatests/com/app:instrumentation_app"))
.toString(),