From 32eefcf1ca97a08ea85f62a72b676e447f1b79a0 Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Wed, 6 Mar 2024 17:27:37 +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_20230802.1.bb | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'meta-oe/recipes-devtools') diff --git a/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_20230802.1.bb b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_20230802.1.bb index 667693a4cd..17db7b2e44 100644 --- a/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_20230802.1.bb +++ b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_20230802.1.bb @@ -28,4 +28,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 1.2.3-korg