Automated rollback of commit e969130525e34fbc5a6b5ff6ed65b934298b449a. PiperOrigin-RevId: 936906229 Change-Id: Ic9a2cca7b8f3f37b9b48f1b25da23808ff2da97c
diff --git a/rules/android_binary/attrs.bzl b/rules/android_binary/attrs.bzl index 8a24f9a..134e4ba 100644 --- a/rules/android_binary/attrs.bzl +++ b/rules/android_binary/attrs.bzl
@@ -262,7 +262,6 @@ _attrs.DATA_CONTEXT, _attrs.ANDROID_TOOLCHAIN_ATTRS, _attrs.AUTOMATIC_EXEC_GROUPS_ENABLED, - _attrs.FLAGS_ATTRS, ), # TODO(b/167599192): don't override manifest attr to remove .xml file restriction. manifest = attr.label(
diff --git a/rules/android_binary/impl.bzl b/rules/android_binary/impl.bzl index a893ab3..7e3fced 100644 --- a/rules/android_binary/impl.bzl +++ b/rules/android_binary/impl.bzl
@@ -46,7 +46,7 @@ "utils", ) load("//rules:visibility.bzl", "PROJECT_VISIBILITY") -load("//rules/flags:flags.bzl", "read_possibly_native_flag", _flags = "flags") +load("//rules/flags:flags.bzl", _flags = "flags") load("@rules_java//java/common:java_common.bzl", "java_common") load("@rules_java//java/common:java_info.bzl", "JavaInfo") load("@rules_java//java/common:java_plugin_info.bzl", "JavaPluginInfo") @@ -292,14 +292,14 @@ if proguard_output_map: # Proguard map from preprocessing will be merged with Proguard map for desugared # library. - if should_optimize_dex and read_possibly_native_flag(ctx, "desugar_java8_libs"): + if should_optimize_dex and ctx.fragments.android.desugar_java8_libs: postprocessing_output_map = _dex.get_dx_artifact(ctx, "_proguard_output_for_desugared_library.map") final_proguard_output_map = ctx.actions.declare_file(ctx.label.name + "_proguard.map") elif should_optimize_dex: # No desugared library, Proguard map from postprocessing is the final Proguard map. postprocessing_output_map = ctx.actions.declare_file(ctx.label.name + "_proguard.map") final_proguard_output_map = postprocessing_output_map - elif read_possibly_native_flag(ctx, "desugar_java8_libs"): + elif ctx.fragments.android.desugar_java8_libs: # No postprocessing, Proguard map from merging with the desugared library map is the # final Proguard map. postprocessing_output_map = proguard_output_map @@ -357,7 +357,7 @@ toolchain_type = ANDROID_TOOLCHAIN_TYPE, ) - if read_possibly_native_flag(ctx, "desugar_java8_libs") and classes_dex_zip.extension == "zip": + if ctx.fragments.android.desugar_java8_libs and classes_dex_zip.extension == "zip": final_classes_dex_zip = _dex.get_dx_artifact(ctx, "final_classes_dex.zip") java8_legacy_dex, java8_legacy_dex_map = _dex.get_java8_legacy_dex_and_map(
diff --git a/rules/android_binary/r8.bzl b/rules/android_binary/r8.bzl index a252f5b..2516c88 100644 --- a/rules/android_binary/r8.bzl +++ b/rules/android_binary/r8.bzl
@@ -34,7 +34,7 @@ "utils", ) load("//rules:visibility.bzl", "PROJECT_VISIBILITY") -load("//rules/flags:flags.bzl", "read_possibly_native_flag", _flags = "flags") +load("//rules/flags:flags.bzl", _flags = "flags") visibility(PROJECT_VISIBILITY) @@ -129,7 +129,7 @@ args.add("--pg-map-output", proguard_mappings_output_file) r8_inputs = [android_jar, deploy_jar] + proguard_specs - if read_possibly_native_flag(ctx, "desugar_java8_libs") and desugared_lib_config: + if ctx.fragments.android.desugar_java8_libs and desugared_lib_config: args.add("--desugared-lib", desugared_lib_config) r8_inputs.append(desugared_lib_config) @@ -149,7 +149,7 @@ # backport references, but does NOT include the j$.* implementation classes # in its output. Append the prebuilt desugared library DEX so the j$.* # classes are available at runtime. - if read_possibly_native_flag(ctx, "desugar_java8_libs") and desugared_lib_config: + if ctx.fragments.android.desugar_java8_libs and desugared_lib_config: final_classes_dex_zip = ctx.actions.declare_file(ctx.label.name + "_final_dexes.zip") java8_legacy_dex = utils.only( get_android_toolchain(ctx).java8_legacy_dex.files.to_list(),
diff --git a/rules/attrs.bzl b/rules/attrs.bzl index f58952a..fbe58fe 100644 --- a/rules/attrs.bzl +++ b/rules/attrs.bzl
@@ -312,9 +312,6 @@ _desugared_java8_legacy_apis = attr.label( default = Label("//tools/android:desugared_java8_legacy_apis"), ), - _desugar_java8_libs = attr.label( - default = Label("//rules/flags:desugar_java8_libs"), - ), _dexbuilder = attr.label( cfg = "exec", default = Label("//tools/android:dexbuilder"), @@ -511,12 +508,6 @@ _use_auto_exec_groups = attr.bool(default = True), ) -_FLAGS_ATTRS = dict( - _desugar_java8_libs = attr.label( - default = Label("//rules/flags:desugar_java8_libs"), - ), -) - attrs = struct( ANDROID_SDK = _ANDROID_SDK, compilation_attributes = _compilation_attributes, @@ -527,5 +518,4 @@ add = _add, replace = _replace, AUTOMATIC_EXEC_GROUPS_ENABLED = _AUTOMATIC_EXEC_GROUPS_ENABLED, - FLAGS_ATTRS = _FLAGS_ATTRS, )
diff --git a/rules/desugar.bzl b/rules/desugar.bzl index d75133f..74348f8 100644 --- a/rules/desugar.bzl +++ b/rules/desugar.bzl
@@ -14,7 +14,6 @@ """Bazel Desugar Commands.""" load("//rules:visibility.bzl", "PROJECT_VISIBILITY") -load("//rules/flags:flags.bzl", "read_possibly_native_flag") visibility(PROJECT_VISIBILITY) @@ -57,7 +56,7 @@ input_file_deps = [input] if library_desugaring: args.add("--emit_dependency_metadata_as_needed") - if read_possibly_native_flag(ctx, "desugar_java8_libs"): + if ctx.fragments.android.desugar_java8_libs: args.add("--desugar_supported_core_libs") # Unconditionally add --desugared_lib_config. This matches the behavior of tools/android/d8_desugar.sh.
diff --git a/rules/dex_desugar_aspect.bzl b/rules/dex_desugar_aspect.bzl index b97b021..b154240 100644 --- a/rules/dex_desugar_aspect.bzl +++ b/rules/dex_desugar_aspect.bzl
@@ -296,7 +296,6 @@ }, _attrs.ANDROID_SDK, _min_sdk_version.attrs, - _attrs.FLAGS_ATTRS, ), fragments = ["android"], toolchains = [
diff --git a/rules/flags/BUILD b/rules/flags/BUILD index 5a3e825..ed32594 100644 --- a/rules/flags/BUILD +++ b/rules/flags/BUILD
@@ -28,7 +28,6 @@ visibility = ["//:__subpackages__"], deps = [ "//rules:visibility_bzl", - "@bazel_features//:features", "@bazel_skylib//rules:common_settings", ], )
diff --git a/rules/flags/flags.bzl b/rules/flags/flags.bzl index 6c9a565..6a8d4f7 100644 --- a/rules/flags/flags.bzl +++ b/rules/flags/flags.bzl
@@ -13,10 +13,8 @@ # limitations under the License. """Bazel Flags.""" -load("@bazel_features//private:util.bzl", "lt") # buildifier: disable=bzl-visibility load("//rules:utils.bzl", "utils") load("//rules:visibility.bzl", "PROJECT_VISIBILITY") -load("@bazel_skylib//rules:common_settings.bzl", "BuildSettingInfo") visibility(PROJECT_VISIBILITY) @@ -189,49 +187,6 @@ return flags[FlagsInfo] return flags[0][FlagsInfo] -_POSSIBLY_NATIVE_FLAGS = { - "desugar_java8_libs": (lambda ctx: ctx.fragments.android.desugar_java8_libs, "native"), -} - -def read_possibly_native_flag(ctx, flag_name): - """ - Canonical API for reading a Android build flag. - - Flags might be defined in Starlark or native-Bazel. This function reads flags - from the correct source based on supporting Bazel version and --incompatible* - flags that disable native references. - - Args: - ctx: Rule's configuration context. - flag_name: Name of the flag to read, without preceding "--". - - Returns: - The flag's value. - """ - - # Bazel 9.1+ can disable these fragments with --incompatible_remove_ctx_android_fragment. - # Disabling them means bazel expects Android to read Starlark flags. - use_native_def = hasattr(ctx.fragments, "android") - - # Developer override to force the Starlark definition for testing. - # This would allow us to migrate flags gradually from native to Starlark with flag aliases. - if _POSSIBLY_NATIVE_FLAGS[flag_name][1] == "starlark": - use_native_def = False - - if lt("9.1.0"): - use_native_def = True - - if use_native_def: - return _POSSIBLY_NATIVE_FLAGS[flag_name][0](ctx) - else: - # Starlark definition of "--foo" is assumed to be a label dependency named "_foo". - if hasattr(ctx.attr, "_" + flag_name): - return getattr(ctx.attr, "_" + flag_name)[BuildSettingInfo].value - elif hasattr(ctx.fragments, "android"): - return _POSSIBLY_NATIVE_FLAGS[flag_name][0](ctx) - - fail("Unable to read flag value for " + flag_name) - flags = struct( DEFINE_bool = bool_flag, DEFINE_bool_group = bool_flag_group,