Migrate --optimizing_dexer and delete _legacy_main_dex_list_generator This change is NOOP PiperOrigin-RevId: 954713631 Change-Id: I03e3953160858ee33680bc9366b9c8cfcfe4006a
diff --git a/rules/android_binary/attrs.bzl b/rules/android_binary/attrs.bzl index e8dacc1..6c0c5b1 100644 --- a/rules/android_binary/attrs.bzl +++ b/rules/android_binary/attrs.bzl
@@ -243,14 +243,6 @@ cfg = "exec", executable = True, ), - _legacy_main_dex_list_generator = attr.label( - default = configuration_field( - fragment = "android", - name = "legacy_main_dex_list_generator", - ), - cfg = "exec", - executable = True, - ), _manifest_merge_order = attr.label( default = "//rules/flags:manifest_merge_order", ),
diff --git a/rules/android_binary/impl.bzl b/rules/android_binary/impl.bzl index f610600..2de18cc 100644 --- a/rules/android_binary/impl.bzl +++ b/rules/android_binary/impl.bzl
@@ -271,7 +271,7 @@ postprocessing_output_map = None deploy_jar = deploy_ctx.deploy_jar is_binary_optimized = len(ctx.attr.proguard_specs) > 0 - optimizing_dexer = ctx.attr._optimizing_dexer + optimizing_dexer = read_possibly_native_flag(ctx, "optimizing_dexer") java8_legacy_dex_map = None proguarded_jar = optimize_ctx.proguard_output.output_jar if is_binary_optimized else None proguard_output_map = optimize_ctx.proguard_output.mapping if is_binary_optimized else None @@ -752,7 +752,7 @@ ctx.attr.proguard_generate_mapping or enable_resource_shrinking ) desugar_java8_libs_generates_map = read_possibly_native_flag(ctx, "desugar_for_android") - optimizing_dexing = bool(ctx.attr._optimizing_dexer) and not acls.in_disable_optimizing_dexer(str(ctx.label)) + optimizing_dexing = bool(read_possibly_native_flag(ctx, "optimizing_dexer")) and not acls.in_disable_optimizing_dexer(str(ctx.label)) if generate_proguard_map: # Determine the output of the Proguard map from shrinking the app. This depends on the
diff --git a/rules/attrs.bzl b/rules/attrs.bzl index d80a0a0..3607f4b 100644 --- a/rules/attrs.bzl +++ b/rules/attrs.bzl
@@ -518,6 +518,11 @@ default = Label("//flags:flags_wrapper"), providers = [WrappedFlagsInfo], ), + _starlark_optimizing_dexer = attr.label( + allow_files = True, + cfg = "exec", + default = Label("//flags:optimizing_dexer"), + ), ) attrs = struct(
diff --git a/rules/flags/flags.bzl b/rules/flags/flags.bzl index 40d62c1..e49a627 100644 --- a/rules/flags/flags.bzl +++ b/rules/flags/flags.bzl
@@ -235,8 +235,13 @@ "experimental_android_resource_shrinking": (lambda ctx: ctx.fragments.android.use_android_resource_shrinking, "native"), "experimental_android_resource_path_shortening": (lambda ctx: ctx.fragments.android.use_android_resource_path_shortening, "native"), "experimental_android_resource_name_obfuscation": (lambda ctx: ctx.fragments.android.use_android_resource_name_obfuscation, "native"), + "optimizing_dexer": (lambda ctx: ctx.attr._optimizing_dexer, "starlark"), } +_LABEL_FLAGS = [ + "optimizing_dexer", +] + def read_possibly_native_flag(ctx, flag_name): """ Canonical API for reading a Android build flag. @@ -268,6 +273,12 @@ if use_native_def: return _POSSIBLY_NATIVE_FLAGS[flag_name][0](ctx) else: + if flag_name in _LABEL_FLAGS: + val = getattr(ctx.attr, "_starlark_" + flag_name, None) + if val and not str(val.label).endswith(":empty"): + return val + return getattr(ctx.attr, "_" + flag_name, None) + # First check the new wrapped_flags attribute if hasattr(ctx.attr, "_wrapped_flags") and ctx.attr._wrapped_flags: wrapped_flags = ctx.attr._wrapped_flags[WrappedFlagsInfo].flags