rules_java: Rename CcInfo#transitive_native_libraries to _legacy_transitive_native_libraries This is needed to convert CcInfo to Starlark without causing a major regression. Mark the field as legacy, becuase we'll need to eventually clean it up. PiperOrigin-RevId: 788808464 Change-Id: I86a21b4b16bd2953961b0f1e7bae2d4ac43e0712
diff --git a/java/common/rules/impl/java_binary_impl.bzl b/java/common/rules/impl/java_binary_impl.bzl index a41a125..15ae89b 100644 --- a/java/common/rules/impl/java_binary_impl.bzl +++ b/java/common/rules/impl/java_binary_impl.bzl
@@ -154,7 +154,10 @@ if JavaInfo in dep: native_libs_depsets.append(dep[JavaInfo].transitive_native_libraries) if CcInfo in dep: - native_libs_depsets.append(dep[CcInfo].transitive_native_libraries()) + if hasattr(dep[CcInfo], "_legacy_transitive_native_libraries"): + native_libs_depsets.append(dep[CcInfo]._legacy_transitive_native_libraries) + else: + native_libs_depsets.append(dep[CcInfo].transitive_native_libraries()) native_libs_dirs = collect_native_deps_dirs(depset(transitive = native_libs_depsets)) if native_libs_dirs: prefix = "${JAVA_RUNFILES}/" + ctx.workspace_name + "/"
diff --git a/java/private/java_info.bzl b/java/private/java_info.bzl index bf793c5..65c6f2a 100644 --- a/java/private/java_info.bzl +++ b/java/private/java_info.bzl
@@ -178,7 +178,8 @@ cc_info = semantics.minimize_cc_info(cc_common.merge_cc_infos(cc_infos = [p.cc_link_params_info for p in providers])) result.update( cc_link_params_info = cc_info, - transitive_native_libraries = cc_info.transitive_native_libraries(), + transitive_native_libraries = + cc_info._legacy_transitive_native_libraries if hasattr(cc_info, "_legacy_transitive_native_libraries") else cc_info.transitive_native_libraries(), ) else: result.update( @@ -679,14 +680,22 @@ cc_info = semantics.minimize_cc_info(cc_common.merge_cc_infos(cc_infos = transitive_cc_infos)) result.update( cc_link_params_info = cc_info, - transitive_native_libraries = cc_info.transitive_native_libraries(), + transitive_native_libraries = + cc_info._legacy_transitive_native_libraries if hasattr(cc_info, "_legacy_transitive_native_libraries") else cc_info.transitive_native_libraries(), ) else: + transitive_native_libraries = [] + if native_libraries: + merged_cc_info = cc_common.merge_cc_infos(cc_infos = native_libraries) + if hasattr(merged_cc_info, "_legacy_transitive_native_libraries"): + transitive_native_libraries = [merged_cc_info._legacy_transitive_native_libraries] + else: + transitive_native_libraries = [merged_cc_info.transitive_native_libraries()] result.update( transitive_native_libraries = depset( order = "topological", transitive = [dep.transitive_native_libraries for dep in concatenated_deps.runtimedeps_exports_deps] + - ([cc_common.merge_cc_infos(cc_infos = native_libraries).transitive_native_libraries()] if native_libraries else []), + transitive_native_libraries, ), ) return result, concatenated_deps
diff --git a/java/testutil.bzl b/java/testutil.bzl index 6207583..4063ea6 100644 --- a/java/testutil.bzl +++ b/java/testutil.bzl
@@ -5,6 +5,8 @@ # TODO: consider eventually upstreaming to rules_cc def _cc_info_transitive_native_libraries(cc_info): + if hasattr(cc_info, "_legacy_transitive_native_libraries"): + return cc_info._legacy_transitive_native_libraries return cc_info.transitive_native_libraries() def _cc_library_to_link_static_library(library_to_link):