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@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