Commit 477a66cd authored by Eli Schwartz's avatar Eli Schwartz Committed by Allan McRae
Browse files

build: link vercmp with a static copy of libalpm



This has historically been the case in autotools since we want vercmp to
not break mid-transaction in an install script.

For convenience, we create libalpm.a and use this to optionally generate
libalpm.so (when not configured with -Dbuildstatic=true) as well as to
link any binary which explicitly wishes to be built statically "with
libalpm", but does not care where a function is defined. meson then
treats this correctly: it builds the object file only once for both
libraries, and the compiler strips out unused functionality from the
final static binary.

Currently the only binary which requires this is vercmp.

Fixes FS#61719

Signed-off-by: Eli Schwartz's avatarEli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae's avatarAllan McRae <allan@archlinux.org>
parent 86004227
......@@ -355,15 +355,24 @@ libcommon = static_library(
include_directories : includes,
install : false)
libalpm = library(
libalpm_a = static_library(
'alpm',
libalpm_sources,
version : libalpm_version,
include_directories : includes,
dependencies : [crypto_provider, libarchive, libcurl] + gpgme_libs,
link_with : [libcommon],
install : true)
if not get_option('buildstatic')
libalpm = shared_library(
'alpm',
version : libalpm_version,
link_whole: [libalpm_a],
install : true)
else
libalpm = libalpm_a
endif
install_headers(
'lib/libalpm/alpm.h',
'lib/libalpm/alpm_list.h')
......@@ -414,7 +423,7 @@ executable(
'vercmp',
vercmp_sources,
include_directories : includes,
link_with : [libalpm],
link_with : [libalpm_a],
install : true,
)
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment