aboutsummaryrefslogtreecommitdiffstats
path: root/meta-oe
diff options
context:
space:
mode:
authorOla x Nilsson <olani@axis.com>2024-03-11 14:03:22 +0100
committerKhem Raj <raj.khem@gmail.com>2024-03-11 07:10:15 -0700
commitdd6421e65eb75c35a904f4b487ba022075035ecc (patch)
tree2eba095a55d384093b45ded4332b07007326c3e9 /meta-oe
parent0182848ca478426fcf2870065e247e9f14436e94 (diff)
downloadmeta-openembedded-contrib-dd6421e65eb75c35a904f4b487ba022075035ecc.tar.gz
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 <olani@axis.com> Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'meta-oe')
-rw-r--r--meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_20240116.1.bb23
1 files changed, 23 insertions, 0 deletions
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"