[pacman-dev] [PATCH 1/2] meson: fix libcommon being publicly exposed as a static link dependency

Eli Schwartz eschwartz at archlinux.org
Thu Sep 19 03:44:57 UTC 2019


libcommon isn't even installed, so that means libalpm.a (if installed)
is fatally broken as it misses objects. The problem is that meson
doesn't handle this case correctly:

https://github.com/mesonbuild/meson/issues/3934
https://github.com/mesonbuild/meson/issues/3937
https://github.com/mesonbuild/meson/pull/3939

Work around this by manually extracting libcommon's .o files into the
list of objects used to create libalpm.

Signed-off-by: Eli Schwartz <eschwartz at archlinux.org>
---
 meson.build | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/meson.build b/meson.build
index 389a95b7..5199759f 100644
--- a/meson.build
+++ b/meson.build
@@ -317,9 +317,10 @@ libcommon = static_library(
 libalpm_a = static_library(
   'alpm',
   libalpm_sources,
+  # https://github.com/mesonbuild/meson/issues/3937
+  objects : libcommon.extract_all_objects(),
   include_directories : includes,
   dependencies : [crypto_provider, libarchive, libcurl, gpgme],
-  link_with : [libcommon],
   install : true)
 
 if get_option('default_library') != 'static'
@@ -336,7 +337,6 @@ install_headers(
   'lib/libalpm/alpm.h',
   'lib/libalpm/alpm_list.h')
 
-# TODO: libs.private seem quite wrong here
 pkgconfig = import('pkgconfig')
 pkgconfig.generate(
   libalpm,
-- 
2.23.0


More information about the pacman-dev mailing list