From dd6421e65eb75c35a904f4b487ba022075035ecc Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Mon, 11 Mar 2024 14:03:22 +0100 Subject: abseil-cpp: Split so-files into separate packages Use PACKAGES_DYNAMIC and PACKAGESPLITFUNCS to put each shared object into its own package named libabsl-*. The shared objects depend on each other which means you still get a lot of them if you link against a single one. The main package abseil-cpp RDEPENDS on all of the libabsl-* packages. Signed-off-by: Ola x Nilsson Signed-off-by: Peter Kjellerstedt Signed-off-by: Khem Raj --- .../abseil-cpp/abseil-cpp_20240116.1.bb | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_20240116.1.bb b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_20240116.1.bb index 9cb3258701..e6c65d3064 100644 --- a/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_20240116.1.bb +++ b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_20240116.1.bb @@ -27,4 +27,27 @@ EXTRA_OECMAKE = "-DBUILD_SHARED_LIBS=ON \ SYSROOT_DIRS:append:class-nativesdk:mingw32 = " ${bindir}" +PACKAGES_DYNAMIC = "^libabsl-*" +PACKAGES_DYNAMIC:class-native = "" + +PACKAGESPLITFUNCS =+ "split_dynamic_packages" + +python split_dynamic_packages() { + libdir = d.getVar('libdir') + + libpackages = do_split_packages( + d, + root=libdir, + file_regex=r'^libabsl_(.*)\.so\..*$', + output_pattern='libabsl-%s', + description="abseil shared library %s", + prepend=True, + extra_depends='', + ) + if libpackages: + d.appendVar('RDEPENDS:' + d.getVar('PN'), ' ' + ' '.join(libpackages)) +} + +ALLOW_EMPTY:${PN} = "1" + BBCLASSEXTEND = "native nativesdk" -- cgit v1.2.3-54-g00ecf