diff --git a/prelude/android/apk_genrule.bzl b/prelude/android/apk_genrule.bzl index eb9e2789c9475..7d4107dab9580 100644 --- a/prelude/android/apk_genrule.bzl +++ b/prelude/android/apk_genrule.bzl @@ -20,6 +20,7 @@ def apk_genrule_impl(ctx: AnalysisContext) -> list[Provider]: input_android_apk_under_test_info = None input_unstripped_shared_libraries = None input_android_apk_subtargets = None + input_android_aab_subtargets = None if ctx.attrs.apk != None: # TODO(T104150125) The underlying APK should not have exopackage enabled input_android_apk_info = ctx.attrs.apk[AndroidApkInfo] @@ -42,6 +43,7 @@ def apk_genrule_impl(ctx: AnalysisContext) -> list[Provider]: input_apk = input_android_aab_info.aab input_manifest = input_android_aab_info.manifest input_materialized_artifacts = input_android_aab_info.materialized_artifacts + input_android_aab_subtargets = ctx.attrs.aab[DefaultInfo].sub_targets env_vars = { "AAB": cmd_args(input_apk), @@ -96,11 +98,22 @@ def apk_genrule_impl(ctx: AnalysisContext) -> list[Provider]: "aab": [DefaultInfo( default_outputs = [genrule_default_output], )], + "native_libs": [input_android_aab_subtargets["native_libs"][DefaultInfo]], }, ), ] + filter(lambda x: not isinstance(x, DefaultInfo), genrule_providers) else: - default_providers = genrule_providers + sub_targets = {k: [v[DefaultInfo]] for k, v in genrule_default_info[0].sub_targets.items()} + sub_targets.update({ + "native_libs": [input_android_aab_subtargets["native_libs"][DefaultInfo]], + }) + default_providers = [ + DefaultInfo( + default_output = genrule_default_output, + other_outputs = genrule_default_info[0].other_outputs, + sub_targets = sub_targets, + ), + ] + filter(lambda x: not isinstance(x, DefaultInfo), genrule_providers) else: sub_targets = {k: [v[DefaultInfo]] for k, v in genrule_default_info[0].sub_targets.items()}