Prepare android rules for Starlark `CcInfo`. Starlark version of `CcInfo` will not have `build_info()` files as an attribute, because: * It is a private attribute which is now enforced by Java code, however once the provider is in pure Starlark the convention is to have a field to start with an `_` if it is private. * It is discouraged to have functions as provider fields therefore the new field will be `_build_info_files`. PiperOrigin-RevId: 595205549 Change-Id: I16cffe4a971d65f6c83aa2b9f69a92fc09046f32
diff --git a/rules/native_deps.bzl b/rules/native_deps.bzl index 1500c47..ab58850 100644 --- a/rules/native_deps.bzl +++ b/rules/native_deps.bzl
@@ -243,10 +243,17 @@ return getattr(ctx.attr, "stamp", 0) def _get_build_info(ctx, cc_toolchain): - if _is_stamping_enabled(ctx): - return cc_toolchain.build_info_files().non_redacted_build_info_files.to_list() + # TODO(gnish): This is a temporary workaround until Blaze with Starlark CcToolchainInfo is released. + if hasattr(cc_toolchain, "_build_info_files"): + # For Starlark CcToolchainInfo. + build_info_collection = cc_toolchain._build_info_files else: - return cc_toolchain.build_info_files().redacted_build_info_files.to_list() + # For native CcToolchainInfo. + build_info_collection = cc_toolchain.build_info_files() + if _is_stamping_enabled(ctx): + return build_info_collection.non_redacted_build_info_files.to_list() + else: + return build_info_collection.redacted_build_info_files.to_list() def _get_shared_native_deps_path( linker_inputs,