gn2bp: propagate static libs up the tree
Soong explicitly requires to list all static libraries, including static
libraries that are linked by a dependency.
What is interesting is that this change seemed to have introduced new
targets?! Will have to check if that's correct, but at first glance it
seems to make sense.
Test: //components/cronet/android:cronet
Change-Id: I0e6e9a760dd0a4ebc5ce50f5dabc02458ff488a8
diff --git a/tools/gn2bp/Android.bp.swp b/tools/gn2bp/Android.bp.swp
index fdb7324..6e8dbbb 100644
--- a/tools/gn2bp/Android.bp.swp
+++ b/tools/gn2bp/Android.bp.swp
@@ -1635,6 +1635,131 @@
cpp_std: "c++20",
}
+// GN: //base/third_party/symbolize:symbolize
+cc_library_static {
+ name: "cronet_aml_base_third_party_symbolize_symbolize",
+ srcs: [
+ "base/third_party/symbolize/demangle.cc",
+ "base/third_party/symbolize/symbolize.cc",
+ ],
+ defaults: [
+ "cronet_aml_defaults",
+ ],
+ cflags: [
+ "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
+ "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
+ "-DCR_SYSROOT_KEY=20220331T153654Z-0",
+ "-DDCHECK_ALWAYS_ON=1",
+ "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
+ "-DGLOG_EXPORT=",
+ "-DUSE_AURA=1",
+ "-DUSE_OZONE=1",
+ "-DUSE_UDEV",
+ "-D_DEBUG",
+ "-D_FILE_OFFSET_BITS=64",
+ "-D_GNU_SOURCE",
+ "-D_LARGEFILE64_SOURCE",
+ "-D_LARGEFILE_SOURCE",
+ "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
+ "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
+ "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
+ "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
+ ],
+ local_include_dirs: [
+ "./",
+ "buildtools/third_party/libc++/",
+ "buildtools/third_party/libc++/trunk/include",
+ "buildtools/third_party/libc++abi/trunk/include",
+ "build/linux/debian_bullseye_amd64-sysroot/usr/include",
+ ],
+ cpp_std: "c++20",
+}
+
+// GN: //base/third_party/xdg_mime:xdg_mime
+cc_library_static {
+ name: "cronet_aml_base_third_party_xdg_mime_xdg_mime",
+ srcs: [
+ "base/third_party/xdg_mime/xdgmime.c",
+ "base/third_party/xdg_mime/xdgmimealias.c",
+ "base/third_party/xdg_mime/xdgmimecache.c",
+ "base/third_party/xdg_mime/xdgmimeglob.c",
+ "base/third_party/xdg_mime/xdgmimeicon.c",
+ "base/third_party/xdg_mime/xdgmimeint.c",
+ "base/third_party/xdg_mime/xdgmimemagic.c",
+ "base/third_party/xdg_mime/xdgmimeparent.c",
+ ],
+ defaults: [
+ "cronet_aml_defaults",
+ ],
+ cflags: [
+ "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
+ "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
+ "-DCR_SYSROOT_KEY=20220331T153654Z-0",
+ "-DDCHECK_ALWAYS_ON=1",
+ "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
+ "-DUSE_AURA=1",
+ "-DUSE_OZONE=1",
+ "-DUSE_UDEV",
+ "-D_DEBUG",
+ "-D_FILE_OFFSET_BITS=64",
+ "-D_GNU_SOURCE",
+ "-D_LARGEFILE64_SOURCE",
+ "-D_LARGEFILE_SOURCE",
+ "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
+ "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
+ "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
+ "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
+ ],
+ local_include_dirs: [
+ "./",
+ "buildtools/third_party/libc++/",
+ "buildtools/third_party/libc++/trunk/include",
+ "buildtools/third_party/libc++abi/trunk/include",
+ "build/linux/debian_bullseye_amd64-sysroot/usr/include",
+ ],
+ cpp_std: "c++20",
+}
+
+// GN: //base/third_party/xdg_user_dirs:xdg_user_dirs
+cc_library_static {
+ name: "cronet_aml_base_third_party_xdg_user_dirs_xdg_user_dirs",
+ srcs: [
+ "base/third_party/xdg_user_dirs/xdg_user_dir_lookup.cc",
+ ],
+ defaults: [
+ "cronet_aml_defaults",
+ ],
+ cflags: [
+ "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
+ "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
+ "-DCR_SYSROOT_KEY=20220331T153654Z-0",
+ "-DDCHECK_ALWAYS_ON=1",
+ "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
+ "-DUSE_AURA=1",
+ "-DUSE_OZONE=1",
+ "-DUSE_UDEV",
+ "-D_DEBUG",
+ "-D_FILE_OFFSET_BITS=64",
+ "-D_GNU_SOURCE",
+ "-D_LARGEFILE64_SOURCE",
+ "-D_LARGEFILE_SOURCE",
+ "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
+ "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
+ "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
+ "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
+ "-D__STDC_CONSTANT_MACROS",
+ "-D__STDC_FORMAT_MACROS",
+ ],
+ local_include_dirs: [
+ "./",
+ "buildtools/third_party/libc++/",
+ "buildtools/third_party/libc++/trunk/include",
+ "buildtools/third_party/libc++abi/trunk/include",
+ "build/linux/debian_bullseye_amd64-sysroot/usr/include",
+ ],
+ cpp_std: "c++20",
+}
+
// GN: //base:tracing_buildflags
genrule {
name: "cronet_aml_base_tracing_buildflags",
@@ -1872,12 +1997,22 @@
"libprotobuf-cpp-lite",
],
static_libs: [
+ "cronet_aml_base_allocator_partition_allocator_partition_alloc",
"cronet_aml_base_base",
+ "cronet_aml_base_base_static",
+ "cronet_aml_base_third_party_double_conversion_double_conversion",
"cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
"cronet_aml_components_prefs_prefs",
"cronet_aml_net_net",
+ "cronet_aml_net_third_party_quiche_quiche",
+ "cronet_aml_net_uri_template",
+ "cronet_aml_third_party_icu_icui18n",
+ "cronet_aml_third_party_icu_icuuc_private",
+ "cronet_aml_third_party_libevent_libevent",
+ "cronet_aml_third_party_modp_b64_modp_b64",
"cronet_aml_third_party_zlib_zlib",
"cronet_aml_url_url",
+ "libssl",
],
generated_headers: [
"cronet_aml_base_debugging_buildflags",
@@ -2258,7 +2393,16 @@
"liblog",
],
static_libs: [
+ "cronet_aml_base_allocator_partition_allocator_partition_alloc",
"cronet_aml_base_base",
+ "cronet_aml_base_base_static",
+ "cronet_aml_base_third_party_double_conversion_double_conversion",
+ "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
+ "cronet_aml_third_party_icu_icui18n",
+ "cronet_aml_third_party_icu_icuuc_private",
+ "cronet_aml_third_party_libevent_libevent",
+ "cronet_aml_third_party_modp_b64_modp_b64",
+ "libssl",
],
generated_headers: [
"cronet_aml_base_debugging_buildflags",
@@ -2357,8 +2501,15 @@
"liblog",
],
static_libs: [
+ "cronet_aml_base_allocator_partition_allocator_partition_alloc",
"cronet_aml_base_base",
+ "cronet_aml_base_base_static",
+ "cronet_aml_base_third_party_double_conversion_double_conversion",
"cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
+ "cronet_aml_third_party_icu_icui18n",
+ "cronet_aml_third_party_icu_icuuc_private",
+ "cronet_aml_third_party_libevent_libevent",
+ "cronet_aml_third_party_modp_b64_modp_b64",
"libssl",
],
generated_headers: [
@@ -3237,13 +3388,21 @@
"libprotobuf-cpp-lite",
],
static_libs: [
+ "cronet_aml_base_allocator_partition_allocator_partition_alloc",
"cronet_aml_base_base",
+ "cronet_aml_base_base_static",
+ "cronet_aml_base_third_party_double_conversion_double_conversion",
"cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
"cronet_aml_crypto_crypto",
"cronet_aml_net_preload_decoder",
"cronet_aml_net_third_party_quiche_quiche",
"cronet_aml_net_uri_template",
+ "cronet_aml_third_party_brotli_common",
"cronet_aml_third_party_brotli_dec",
+ "cronet_aml_third_party_icu_icui18n",
+ "cronet_aml_third_party_icu_icuuc_private",
+ "cronet_aml_third_party_libevent_libevent",
+ "cronet_aml_third_party_modp_b64_modp_b64",
"cronet_aml_third_party_zlib_zlib",
"cronet_aml_url_url",
"libssl",
@@ -3497,7 +3656,16 @@
"liblog",
],
static_libs: [
+ "cronet_aml_base_allocator_partition_allocator_partition_alloc",
"cronet_aml_base_base",
+ "cronet_aml_base_base_static",
+ "cronet_aml_base_third_party_double_conversion_double_conversion",
+ "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
+ "cronet_aml_third_party_icu_icui18n",
+ "cronet_aml_third_party_icu_icuuc_private",
+ "cronet_aml_third_party_libevent_libevent",
+ "cronet_aml_third_party_modp_b64_modp_b64",
+ "libssl",
],
defaults: [
"cronet_aml_defaults",
@@ -4011,8 +4179,16 @@
"libprotobuf-cpp-lite",
],
static_libs: [
+ "cronet_aml_base_allocator_partition_allocator_partition_alloc",
"cronet_aml_base_base",
+ "cronet_aml_base_base_static",
+ "cronet_aml_base_third_party_double_conversion_double_conversion",
+ "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
"cronet_aml_net_uri_template",
+ "cronet_aml_third_party_icu_icui18n",
+ "cronet_aml_third_party_icu_icuuc_private",
+ "cronet_aml_third_party_libevent_libevent",
+ "cronet_aml_third_party_modp_b64_modp_b64",
"cronet_aml_third_party_zlib_zlib",
"cronet_aml_url_url",
"libssl",
@@ -4080,8 +4256,19 @@
"libprotobuf-cpp-lite",
],
static_libs: [
+ "cronet_aml_base_allocator_partition_allocator_partition_alloc",
"cronet_aml_base_base",
+ "cronet_aml_base_base_static",
+ "cronet_aml_base_third_party_double_conversion_double_conversion",
+ "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
+ "cronet_aml_base_third_party_symbolize_symbolize",
+ "cronet_aml_base_third_party_xdg_mime_xdg_mime",
+ "cronet_aml_base_third_party_xdg_user_dirs_xdg_user_dirs",
"cronet_aml_crypto_crypto",
+ "cronet_aml_third_party_icu_icui18n",
+ "cronet_aml_third_party_icu_icuuc_private",
+ "cronet_aml_third_party_libevent_libevent",
+ "cronet_aml_third_party_modp_b64_modp_b64",
"libssl",
],
generated_headers: [
@@ -4156,7 +4343,16 @@
"liblog",
],
static_libs: [
+ "cronet_aml_base_allocator_partition_allocator_partition_alloc",
"cronet_aml_base_base",
+ "cronet_aml_base_base_static",
+ "cronet_aml_base_third_party_double_conversion_double_conversion",
+ "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
+ "cronet_aml_third_party_icu_icui18n",
+ "cronet_aml_third_party_icu_icuuc_private",
+ "cronet_aml_third_party_libevent_libevent",
+ "cronet_aml_third_party_modp_b64_modp_b64",
+ "libssl",
],
defaults: [
"cronet_aml_defaults",
@@ -5976,8 +6172,16 @@
"liblog",
],
static_libs: [
+ "cronet_aml_base_allocator_partition_allocator_partition_alloc",
"cronet_aml_base_base",
+ "cronet_aml_base_base_static",
+ "cronet_aml_base_third_party_double_conversion_double_conversion",
"cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
+ "cronet_aml_third_party_icu_icui18n",
+ "cronet_aml_third_party_icu_icuuc_private",
+ "cronet_aml_third_party_libevent_libevent",
+ "cronet_aml_third_party_modp_b64_modp_b64",
+ "libssl",
],
generated_headers: [
"cronet_aml_base_debugging_buildflags",
diff --git a/tools/gn2bp/gn_utils.py b/tools/gn2bp/gn_utils.py
index e90b500..1399fcf 100644
--- a/tools/gn2bp/gn_utils.py
+++ b/tools/gn2bp/gn_utils.py
@@ -135,6 +135,7 @@
self.source_set_deps = set() # Transitive set of source_set deps.
self.proto_deps = set()
self.transitive_proto_deps = set()
+ self.transitive_static_libs_deps = set()
# Deps on //gn:xxx have this flag set to True. These dependencies
# are special because they pull third_party code from buildtools/.
@@ -300,6 +301,13 @@
# java_library.
pass
+ if dep.type == 'static_library':
+ # Bubble up static_libs. Necessary, since soong does not propagate
+ # static_libs up the build tree.
+ target.transitive_static_libs_deps.add(dep_name)
+ target.transitive_static_libs_deps.update(dep.transitive_static_libs_deps)
+ target.deps.update(target.transitive_static_libs_deps)
+
# Collect java sources. Java sources are kept inside the __compile_java target.
# This target can be used for both host and target compilation; only add
# the sources if they are destined for the target (i.e. they are a