summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Schwartz <eschwartz@archlinux.org>2019-02-11 11:19:26 -0500
committerAllan McRae <allan@archlinux.org>2019-02-12 21:58:19 +1000
commit477a66cd0e7a1b8f5fb7d3b79d977da2771ee09a (patch)
tree2d6c262ff83b1475b8cf792052aba428eb5f9b70
parent86004227d14bef059f71290b3c0454ad88ea0f86 (diff)
downloadpacman-477a66cd0e7a1b8f5fb7d3b79d977da2771ee09a.tar.xz
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 <eschwartz@archlinux.org> Signed-off-by: Allan McRae <allan@archlinux.org>
-rw-r--r--meson.build15
1 files changed, 12 insertions, 3 deletions
diff --git a/meson.build b/meson.build
index 02a3a3d3..8e9dbd71 100644
--- a/meson.build
+++ b/meson.build
@@ -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,
)