Migrate --desugar_for_android --experimental_android_library_exports_manifest_default --experimental_android_resource_shrinking --experimental_get_android_java_resources_from_optimized_jar --android_manifest_merger --experimental_android_resource_cycle_shrinking PiperOrigin-RevId: 952899537 Change-Id: Icc035d739150f4954c54f477219ce90a1e8e0613
diff --git a/rules/aar_import/impl.bzl b/rules/aar_import/impl.bzl index 11393b2..520ca10 100644 --- a/rules/aar_import/impl.bzl +++ b/rules/aar_import/impl.bzl
@@ -40,7 +40,7 @@ _utils = "utils", ) load("//rules:visibility.bzl", "PROJECT_VISIBILITY") -load("//rules/flags:flags.bzl", _flags = "flags") +load("//rules/flags:flags.bzl", "read_possibly_native_flag", _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:proguard_spec_info.bzl", "ProguardSpecInfo") @@ -500,7 +500,7 @@ deps = _utils.collect_providers(JavaInfo, ctx.attr.deps), r_java = resources_ctx.r_java, exports = _utils.collect_providers(JavaInfo, ctx.attr.exports), - enable_desugar_java8 = ctx.fragments.android.desugar_java8, + enable_desugar_java8 = read_possibly_native_flag(ctx, "desugar_for_android"), enable_imports_deps_check = _acls.in_aar_import_deps_checker(str(ctx.label)), aar_embedded_jars_extractor_tool =
diff --git a/rules/android_binary/impl.bzl b/rules/android_binary/impl.bzl index 530154d..f610600 100644 --- a/rules/android_binary/impl.bzl +++ b/rules/android_binary/impl.bzl
@@ -106,7 +106,7 @@ compilation_mode = compilation_mode.get(ctx), shrink_resources = ctx.attr.shrink_resources, use_android_resource_shrinking = read_possibly_native_flag(ctx, "android_resource_shrinking"), - use_android_resource_cycle_shrinking = ctx.fragments.android.use_android_resource_cycle_shrinking, + use_android_resource_cycle_shrinking = read_possibly_native_flag(ctx, "experimental_android_resource_cycle_shrinking"), use_legacy_manifest_merger = use_legacy_manifest_merger(ctx), should_throw_on_conflict = not acls.in_allow_resource_conflicts(str(ctx.label)), enable_data_binding = ctx.attr.enable_data_binding, @@ -397,7 +397,7 @@ filtered_deploy_jar = deploy_ctx.filtered_deploy_jar, final_classes_dex_zip = final_classes_dex_zip, final_proguard_output_map = final_proguard_output_map, - java_resource_jar = binary_jar if ctx.fragments.android.get_java_resources_from_optimized_jar else deploy_jar, + java_resource_jar = binary_jar if read_possibly_native_flag(ctx, "experimental_get_android_java_resources_from_optimized_jar") else deploy_jar, ) providers.append(AndroidPreDexJarInfo(pre_dex_jar = binary_jar)) @@ -446,7 +446,7 @@ info = _dex.merge_infos(utils.collect_providers(StarlarkAndroidDexInfo, _get_dex_desugar_aspect_deps(ctx))) incremental_dexopts = _dex.filter_dexopts(ctx.attr.dexopts, _dex.DEXOPTS_SUPPORTED_IN_INCREMENTAL_DEXING) dex_archives = info.dex_archives_dict.get("".join(incremental_dexopts), depset()).to_list() - if ctx.fragments.android.desugar_java8: + if read_possibly_native_flag(ctx, "desugar_for_android"): desugared_jars = [] # Only include the desugar globals in the deploy jar if this target will be optimized. @@ -751,7 +751,7 @@ generate_proguard_map = ( ctx.attr.proguard_generate_mapping or enable_resource_shrinking ) - desugar_java8_libs_generates_map = ctx.fragments.android.desugar_java8 + 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)) if generate_proguard_map:
diff --git a/rules/android_library/impl.bzl b/rules/android_library/impl.bzl index 4e00bb8..c410e83 100644 --- a/rules/android_library/impl.bzl +++ b/rules/android_library/impl.bzl
@@ -31,6 +31,7 @@ load("//rules:resources.bzl", _resources = "resources") load("//rules:utils.bzl", "get_android_sdk", "get_android_toolchain", "log", "utils") load("//rules:visibility.bzl", "PROJECT_VISIBILITY") +load("//rules/flags:flags.bzl", "read_possibly_native_flag") load("@rules_java//java/common:java_info.bzl", "JavaInfo") load("@rules_java//java/common:java_plugin_info.bzl", "JavaPluginInfo") load("@rules_java//java/common:proguard_spec_info.bzl", "ProguardSpecInfo") @@ -148,7 +149,10 @@ def _process_resources(ctx, java_package, manifest_ctx, localized_ctx, **unused_ctxs): # exports_manifest can be overridden by a bazel flag. if ctx.attr.exports_manifest == _attrs.tristate.auto: - exports_manifest = ctx.fragments.android.get_exports_manifest_default + exports_manifest = read_possibly_native_flag( + ctx, + "experimental_android_library_exports_manifest_default", + ) else: exports_manifest = ctx.attr.exports_manifest == _attrs.tristate.yes
diff --git a/rules/dex_desugar_aspect.bzl b/rules/dex_desugar_aspect.bzl index 2d4850b..d594c09 100644 --- a/rules/dex_desugar_aspect.bzl +++ b/rules/dex_desugar_aspect.bzl
@@ -15,6 +15,7 @@ load("//providers:providers.bzl", "AndroidBytecodeTransformerInfo", "AndroidIdeInfo", "StarlarkAndroidDexInfo") load("//rules:visibility.bzl", "PROJECT_VISIBILITY") +load("//rules/flags:flags.bzl", "read_possibly_native_flag") load("@rules_java//java/common:java_info.bzl", "JavaInfo") load("@bazel_skylib//lib:partial.bzl", "partial") load(":acls.bzl", "acls") @@ -122,7 +123,7 @@ basename_clash = _check_basename_clash(runtime_jars) aspect_dexopts = _get_aspect_dexopts() for jar in runtime_jars: - if ctx.fragments.android.desugar_java8: + if read_possibly_native_flag(ctx, "desugar_for_android"): jar_to_desugar = jar unique_desugar_filename = (jar.short_path if basename_clash else jar.basename) + "_desugared.jar" desugared_jar = _dex.get_dx_artifact(ctx, unique_desugar_filename, min_sdk_version)
diff --git a/rules/flags/flags.bzl b/rules/flags/flags.bzl index 208b898..40d62c1 100644 --- a/rules/flags/flags.bzl +++ b/rules/flags/flags.bzl
@@ -190,11 +190,28 @@ return flags[0][FlagsInfo] _POSSIBLY_NATIVE_FLAGS = { + "android_manifest_merger": ( + lambda ctx: ctx.fragments.android.manifest_merger, + "native", + ), + "desugar_for_android": (lambda ctx: ctx.fragments.android.desugar_java8, "native"), "desugar_java8_libs": (lambda ctx: ctx.fragments.android.desugar_java8_libs, "native"), "experimental_android_compress_java_resources": ( lambda ctx: ctx.fragments.android.compress_java_resources, "native", ), + "experimental_android_library_exports_manifest_default": ( + lambda ctx: ctx.fragments.android.get_exports_manifest_default, + "native", + ), + "experimental_android_resource_cycle_shrinking": ( + lambda ctx: ctx.fragments.android.use_android_resource_cycle_shrinking, + "native", + ), + "experimental_get_android_java_resources_from_optimized_jar": ( + lambda ctx: ctx.fragments.android.get_java_resources_from_optimized_jar, + "native", + ), "internal_persistent_android_dex_desugar": ( lambda ctx: ctx.fragments.android.persistent_android_dex_desugar, "native", @@ -215,6 +232,7 @@ "dexopts_supported_in_dexsharder": (lambda ctx: ctx.fragments.android.get_dexopts_supported_in_dex_sharder, "native"), "fixed_resource_neverlinking": (lambda ctx: ctx.fragments.android.fixed_resource_neverlinking, "native"), "android_resource_shrinking": (lambda ctx: ctx.fragments.android.use_android_resource_shrinking, "native"), + "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"), }
diff --git a/rules/proguard.bzl b/rules/proguard.bzl index 2c55f9d..9005755 100644 --- a/rules/proguard.bzl +++ b/rules/proguard.bzl
@@ -14,6 +14,7 @@ """Bazel Android Proguard library for the Android rules.""" load("//rules:visibility.bzl", "PROJECT_VISIBILITY") +load("//rules/flags:flags.bzl", "read_possibly_native_flag") load("@rules_java//java/common:java_common.bzl", "java_common") load("@rules_java//java/common:proguard_spec_info.bzl", "ProguardSpecInfo") load(":acls.bzl", "acls") @@ -444,7 +445,7 @@ ) library_jar_list = [utils.only(common.get_java_toolchain(ctx)[java_common.JavaToolchainInfo].bootclasspath.to_list())] - if ctx.fragments.android.desugar_java8: + if read_possibly_native_flag(ctx, "desugar_for_android"): library_jar_list.append(ctx.file._desugared_java8_legacy_apis) neverlink_infos = utils.collect_providers(StarlarkAndroidNeverlinkInfo, ctx.attr.deps) library_jars = depset(library_jar_list, transitive = [info.transitive_neverlink_libraries for info in neverlink_infos])