From e4044baf2debfa02b8155d349e6ce336a91ee6d8 Mon Sep 17 00:00:00 2001 From: Sheroz Nazhmudinov Date: Thu, 12 Feb 2026 16:08:06 +0100 Subject: [PATCH] Extract baseline-prof.txt from AARs in aar_import aar_import now extracts baseline-prof.txt and provides BaselineProfileProvider, so baseline profiles from maven AARs propagate through the dependency graph to android_binary. --- rules/aar_import/impl.bzl | 14 +++++++++++++- rules/aar_import/rule.bzl | 3 ++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/rules/aar_import/impl.bzl b/rules/aar_import/impl.bzl index 527c5a587..f4c059e1f 100644 --- a/rules/aar_import/impl.bzl +++ b/rules/aar_import/impl.bzl @@ -13,7 +13,7 @@ # limitations under the License. """Implementation.""" -load("//providers:providers.bzl", "AndroidLintRulesInfo", "AndroidNativeLibsInfo") +load("//providers:providers.bzl", "AndroidLintRulesInfo", "AndroidNativeLibsInfo", "BaselineProfileProvider") load( "//rules:acls.bzl", _acls = "acls", @@ -575,6 +575,18 @@ def impl(ctx): ) providers.extend(lint_providers) + # Extract baseline-prof.txt from the AAR if present, otherwise create an empty file. + baseline_prof = create_aar_artifact(ctx, "baseline-prof.txt") + extract_single_file( + ctx, + baseline_prof, + aar, + "baseline-prof.txt", + unzip_tool, + create_empty_file = True, + ) + providers.append(BaselineProfileProvider(files = depset([baseline_prof]))) + validation_outputs.append(_validate_rule( ctx, aar = aar, diff --git a/rules/aar_import/rule.bzl b/rules/aar_import/rule.bzl index 9110162d7..af37833cf 100644 --- a/rules/aar_import/rule.bzl +++ b/rules/aar_import/rule.bzl @@ -13,7 +13,7 @@ # limitations under the License. """aar_import rule.""" -load("//providers:providers.bzl", "AndroidIdeInfo", "AndroidLibraryResourceClassJarProvider", "AndroidNativeLibsInfo") +load("//providers:providers.bzl", "AndroidIdeInfo", "AndroidLibraryResourceClassJarProvider", "AndroidNativeLibsInfo", "BaselineProfileProvider") load( "//rules:utils.bzl", "ANDROID_SDK_TOOLCHAIN_TYPE", @@ -60,6 +60,7 @@ aar_import = rule( AndroidIdeInfo, AndroidLibraryResourceClassJarProvider, AndroidNativeLibsInfo, + BaselineProfileProvider, JavaInfo, ], toolchains = [