aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarvin W <git@larma.de>2025-04-04 20:58:31 +0200
committerMarvin W <git@larma.de>2025-04-04 20:58:31 +0200
commit01cf82385509f9a7d1ff09b5086dee136b9562f0 (patch)
tree9382c53b95bd77c8efa8fde3ae93fc15cab6a290
parent87dfa8e670a080c3067d20f85b6af35cd8071a87 (diff)
Meson: Add option to set rpath on installed binaries
-rw-r--r--crypto-vala/meson.build2
-rw-r--r--libdino/meson.build2
-rw-r--r--main/meson.build2
-rw-r--r--meson.build5
-rw-r--r--meson_options.txt2
-rw-r--r--plugins/http-files/meson.build2
-rw-r--r--plugins/ice/meson.build2
-rw-r--r--plugins/notification-sound/meson.build2
-rw-r--r--plugins/omemo/meson.build2
-rw-r--r--plugins/openpgp/meson.build2
-rw-r--r--plugins/rtp/meson.build2
-rw-r--r--qlite/meson.build2
-rw-r--r--xmpp-vala/meson.build2
13 files changed, 18 insertions, 11 deletions
diff --git a/crypto-vala/meson.build b/crypto-vala/meson.build
index c3feb4d1..8499ff92 100644
--- a/crypto-vala/meson.build
+++ b/crypto-vala/meson.build
@@ -17,7 +17,7 @@ c_args = [
vala_args = [
'--vapidir', meson.current_source_dir() / 'vapi',
]
-lib_crypto_vala = library('crypto-vala', sources, c_args: c_args, vala_args: vala_args, dependencies: dependencies, version: '0.0', install: true, install_dir: [true, true, true])
+lib_crypto_vala = library('crypto-vala', sources, c_args: c_args, vala_args: vala_args, dependencies: dependencies, version: '0.0', install: true, install_dir: [true, true, true], install_rpath: default_install_rpath)
dep_crypto_vala = declare_dependency(link_with: lib_crypto_vala, include_directories: include_directories('.'))
install_data('crypto-vala.deps', install_dir: get_option('datadir') / 'vala/vapi') # TODO: workaround for https://github.com/mesonbuild/meson/issues/9756
diff --git a/libdino/meson.build b/libdino/meson.build
index 11e25d6b..9992a661 100644
--- a/libdino/meson.build
+++ b/libdino/meson.build
@@ -85,7 +85,7 @@ vala_args = []
if meson.get_compiler('vala').version().version_compare('=0.56.11')
vala_args += ['-D', 'VALA_0_56_11']
endif
-lib_dino = library('libdino', sources, c_args: c_args, vala_args: vala_args, include_directories: include_directories('src'), dependencies: dependencies, name_prefix: '', version: '0.0', install: true, install_dir: [true, true, true])
+lib_dino = library('libdino', sources, c_args: c_args, vala_args: vala_args, include_directories: include_directories('src'), dependencies: dependencies, name_prefix: '', version: '0.0', install: true, install_dir: [true, true, true], install_rpath: default_install_rpath)
dep_dino = declare_dependency(link_with: lib_dino, include_directories: include_directories('.', 'src'))
install_data('dino.deps', install_dir: get_option('datadir') / 'vala/vapi') # TODO: workaround for https://github.com/mesonbuild/meson/issues/9756
diff --git a/main/meson.build b/main/meson.build
index 11aecf32..64dc4eda 100644
--- a/main/meson.build
+++ b/main/meson.build
@@ -143,7 +143,7 @@ endif
if meson.get_compiler('vala').version().version_compare('=0.56.12')
vala_args += ['-D', 'VALA_0_56_12']
endif
-exe_dino = executable('dino', sources, c_args: c_args, vala_args: vala_args, dependencies: dependencies, install: true)
+exe_dino = executable('dino', sources, c_args: c_args, vala_args: vala_args, dependencies: dependencies, install: true, install_rpath: default_install_rpath)
install_data('data/icons/scalable/apps/im.dino.Dino-symbolic.svg', install_dir: get_option('datadir') / 'icons/hicolor/symbolic/apps')
install_data('data/icons/scalable/apps/im.dino.Dino.svg', install_dir: get_option('datadir') / 'icons/hicolor/scalable/apps')
diff --git a/meson.build b/meson.build
index 154e97e8..627b2eeb 100644
--- a/meson.build
+++ b/meson.build
@@ -59,6 +59,11 @@ endif
prog_git = find_program('git', required: false)
prog_python = python.find_installation()
+default_install_rpath = ''
+if get_option('set-install-rpath')
+ default_install_rpath = get_option('prefix') / get_option('libdir')
+endif
+
subdir('qlite')
subdir('xmpp-vala')
subdir('libdino')
diff --git a/meson_options.txt b/meson_options.txt
index bbfcfec5..70fc15c4 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -1,5 +1,7 @@
option('plugindir', type: 'string', value: 'dino/plugins', description: 'Dino plugin directory, relative to libdir')
+option('set-install-rpath', type: 'boolean', value: false, description: 'Set rpath of installed binaries to the configured libdir')
+
option('plugin-http-files', type: 'feature', description: 'HTTP file upload')
option('plugin-ice', type: 'feature', description: 'Peer-to-peer communication')
option('plugin-omemo', type: 'feature', description: 'End-to-end encryption using OMEMO')
diff --git a/plugins/http-files/meson.build b/plugins/http-files/meson.build
index 1907e486..7208b1e8 100644
--- a/plugins/http-files/meson.build
+++ b/plugins/http-files/meson.build
@@ -18,6 +18,6 @@ sources = files(
vala_args = [
'-D', 'SOUP_3_0',
]
-lib_http_files = shared_library('http-files', sources, name_prefix: '', vala_args: vala_args, dependencies: dependencies, install: true, install_dir: get_option('libdir') / get_option('plugindir'))
+lib_http_files = shared_library('http-files', sources, name_prefix: '', vala_args: vala_args, dependencies: dependencies, install: true, install_dir: get_option('libdir') / get_option('plugindir'), install_rpath: default_install_rpath)
dep_http_files = declare_dependency(link_with: lib_http_files, include_directories: include_directories('.'))
summary('HTTP file upload (http-files)', dep_http_files, section: 'Plugins')
diff --git a/plugins/ice/meson.build b/plugins/ice/meson.build
index 10e70cd9..0f51c1ef 100644
--- a/plugins/ice/meson.build
+++ b/plugins/ice/meson.build
@@ -24,6 +24,6 @@ c_args = [
vala_args = [
'--vapidir', meson.current_source_dir() / 'vapi',
]
-lib_ice = shared_library('ice', sources, name_prefix: '', c_args: c_args, vala_args: vala_args, dependencies: dependencies, install: true, install_dir: get_option('libdir') / get_option('plugindir'))
+lib_ice = shared_library('ice', sources, name_prefix: '', c_args: c_args, vala_args: vala_args, dependencies: dependencies, install: true, install_dir: get_option('libdir') / get_option('plugindir'), install_rpath: default_install_rpath)
dep_ice = declare_dependency(link_with: lib_ice, include_directories: include_directories('.'))
summary('Peer-to-peer communication (ice)', dep_ice, section: 'Plugins')
diff --git a/plugins/notification-sound/meson.build b/plugins/notification-sound/meson.build
index 8d3c7694..1ac44af8 100644
--- a/plugins/notification-sound/meson.build
+++ b/plugins/notification-sound/meson.build
@@ -15,6 +15,6 @@ sources = files(
vala_args = [
'--vapidir', meson.current_source_dir() / 'vapi',
]
-lib_notification_sound = shared_library('notification-sound', sources, name_prefix: '', vala_args: vala_args, dependencies: dependencies, install: true, install_dir: get_option('libdir') / get_option('plugindir'))
+lib_notification_sound = shared_library('notification-sound', sources, name_prefix: '', vala_args: vala_args, dependencies: dependencies, install: true, install_dir: get_option('libdir') / get_option('plugindir'), install_rpath: default_install_rpath)
dep_notification_sound = declare_dependency(link_with: lib_notification_sound, include_directories: include_directories('.'))
summary('Sound for chat notifications (notification-sound)', dep_notification_sound, section: 'Plugins') \ No newline at end of file
diff --git a/plugins/omemo/meson.build b/plugins/omemo/meson.build
index 20fec73e..bdf6ec5b 100644
--- a/plugins/omemo/meson.build
+++ b/plugins/omemo/meson.build
@@ -69,7 +69,7 @@ vala_args = [
'--internal-vapi', meson.current_build_dir() / 'omemo-internal.vapi',
'--internal-header', meson.current_build_dir() / 'omemo-internal.h',
]
-lib_omemo = shared_library('omemo', sources, name_prefix: '', c_args: c_args, vala_args: vala_args, include_directories: include_directories('src'), dependencies: dependencies, install: true, install_dir: get_option('libdir') / get_option('plugindir'))
+lib_omemo = shared_library('omemo', sources, name_prefix: '', c_args: c_args, vala_args: vala_args, include_directories: include_directories('src'), dependencies: dependencies, install: true, install_dir: get_option('libdir') / get_option('plugindir'), install_rpath: default_install_rpath)
dep_omemo = declare_dependency(link_with: lib_omemo, include_directories: include_directories('.'))
summary('End-to-end encryption using OMEMO (omemo)', dep_omemo, section: 'Plugins')
# This is to use the internal vapi instead of the regular
diff --git a/plugins/openpgp/meson.build b/plugins/openpgp/meson.build
index 6428771b..550fd31f 100644
--- a/plugins/openpgp/meson.build
+++ b/plugins/openpgp/meson.build
@@ -43,6 +43,6 @@ vala_args = [
if dep_libadwaita.version() == 'unknown' or dep_libadwaita.version().version_compare('>=1.4')
vala_args += ['-D', 'Adw_1_4']
endif
-lib_openpgp = shared_library('openpgp', sources, name_prefix: '', c_args: c_args, vala_args: vala_args, include_directories: include_directories('src'), dependencies: dependencies, install: true, install_dir: get_option('libdir') / get_option('plugindir'))
+lib_openpgp = shared_library('openpgp', sources, name_prefix: '', c_args: c_args, vala_args: vala_args, include_directories: include_directories('src'), dependencies: dependencies, install: true, install_dir: get_option('libdir') / get_option('plugindir'), install_rpath: default_install_rpath)
dep_openpgp = declare_dependency(link_with: lib_openpgp, include_directories: include_directories('.'))
summary('End-to-end encryption using PGP (openpgp)', dep_openpgp, section: 'Plugins')
diff --git a/plugins/rtp/meson.build b/plugins/rtp/meson.build
index 54d45877..6c490395 100644
--- a/plugins/rtp/meson.build
+++ b/plugins/rtp/meson.build
@@ -79,7 +79,7 @@ if get_option('plugin-rtp-vp9').allowed()
vala_args += ['-D', 'ENABLE_VP9']
endif
-lib_rtp = shared_library('rtp', sources, name_prefix: '', c_args: c_args, vala_args: vala_args, include_directories: include_directories('src'), dependencies: dependencies, install: true, install_dir: get_option('libdir') / get_option('plugindir'))
+lib_rtp = shared_library('rtp', sources, name_prefix: '', c_args: c_args, vala_args: vala_args, include_directories: include_directories('src'), dependencies: dependencies, install: true, install_dir: get_option('libdir') / get_option('plugindir'), install_rpath: default_install_rpath)
dep_rtp = declare_dependency(link_with: lib_rtp, include_directories: include_directories('.'))
summary('Voice/video calls (rtp)', dep_rtp, section: 'Plugins')
diff --git a/qlite/meson.build b/qlite/meson.build
index 9523b618..e26a71e9 100644
--- a/qlite/meson.build
+++ b/qlite/meson.build
@@ -21,7 +21,7 @@ c_args = [
vala_args = [
'--vapidir', meson.current_source_dir() / 'vapi',
]
-lib_qlite = library('qlite', sources, c_args: c_args, vala_args: vala_args, dependencies: dependencies, version: '0.1', install: true, install_dir: [true, true, true])
+lib_qlite = library('qlite', sources, c_args: c_args, vala_args: vala_args, dependencies: dependencies, version: '0.1', install: true, install_dir: [true, true, true], install_rpath: default_install_rpath)
dep_qlite = declare_dependency(link_with: lib_qlite, include_directories: include_directories('.'))
install_data('qlite.deps', install_dir: get_option('datadir') / 'vala/vapi') # TODO: workaround for https://github.com/mesonbuild/meson/issues/9756
diff --git a/xmpp-vala/meson.build b/xmpp-vala/meson.build
index 7237891b..9b863265 100644
--- a/xmpp-vala/meson.build
+++ b/xmpp-vala/meson.build
@@ -143,7 +143,7 @@ if meson.get_compiler('vala').version().version_compare('=0.56.11')
vala_args += ['-D', 'VALA_0_56_11']
endif
-lib_xmpp_vala = library('xmpp-vala', sources, c_args: c_args, vala_args: vala_args, dependencies: dependencies, version: '0.1', install: true, install_dir: [true, true, true])
+lib_xmpp_vala = library('xmpp-vala', sources, c_args: c_args, vala_args: vala_args, dependencies: dependencies, version: '0.1', install: true, install_dir: [true, true, true], install_rpath: default_install_rpath)
dep_xmpp_vala = declare_dependency(link_with: lib_xmpp_vala, include_directories: include_directories('.'))
install_data('xmpp-vala.deps', install_dir: get_option('datadir') / 'vala/vapi') # TODO: workaround for https://github.com/mesonbuild/meson/issues/9756