diff --git a/meson.build b/meson.build index 2846c9b9f2..35e3da6e55 100644 --- a/meson.build +++ b/meson.build @@ -156,6 +156,16 @@ if rc.returncode() == 0 endif +# Add RPATH information when building for a non-standard prefix, or +# when explicitly requested to do so + +if prefix == '/usr' and not get_option('rpath').enabled() + libvirt_rpath = '' +else + libvirt_rpath = libdir +endif + + # figure out libvirt version strings arr_version = meson.project_version().split('.') diff --git a/meson_options.txt b/meson_options.txt index c538d323c1..79554c3186 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -6,6 +6,7 @@ option('runstatedir', type: 'string', value: '', description: 'State directory f option('expensive_tests', type: 'feature', value: 'auto', description: 'set the default for enabling expensive tests (long timeouts), use VIR_TEST_EXPENSIVE to override') option('test_coverage', type: 'boolean', value: false, description: 'turn on code coverage instrumentation') option('git_werror', type: 'feature', value: 'auto', description: 'use -Werror if building from GIT') +option('rpath', type: 'feature', value: 'auto', description: 'whether to include rpath information in installed binaries and libraries') # build dependencies options diff --git a/src/meson.build b/src/meson.build index 73ac99f01e..d058cec2e4 100644 --- a/src/meson.build +++ b/src/meson.build @@ -454,7 +454,7 @@ libvirt_qemu_lib = shared_library( libvirt_qemu_syms_file, ], install: true, - install_rpath: libdir, + install_rpath: libvirt_rpath, version: libvirt_lib_version, soversion: libvirt_so_version, ) @@ -510,7 +510,7 @@ libvirt_lxc_lib = shared_library( libvirt_lxc_syms_file, ], install: true, - install_rpath: libdir, + install_rpath: libvirt_rpath, version: libvirt_lib_version, soversion: libvirt_so_version, ) @@ -554,7 +554,7 @@ libvirt_admin_lib = shared_library( libvirt_admin_syms_file, ], install: true, - install_rpath: libdir, + install_rpath: libvirt_rpath, version: libvirt_lib_version, soversion: libvirt_so_version, ) @@ -588,7 +588,7 @@ foreach module : virt_modules ], install: true, install_dir: module.get('install_dir', libdir / 'libvirt' / 'connection-driver'), - install_rpath: libdir, + install_rpath: libvirt_rpath, ) set_variable('@0@_module'.format(module['name'].underscorify()), mod) endforeach @@ -633,7 +633,7 @@ foreach daemon : virt_daemons ], install: true, install_dir: sbindir, - install_rpath: libdir, + install_rpath: libvirt_rpath, ) endforeach @@ -661,7 +661,7 @@ foreach helper : virt_helpers ], install: true, install_dir: helper.get('install_dir', libexecdir), - install_rpath: libdir, + install_rpath: libvirt_rpath, ) endforeach diff --git a/tools/meson.build b/tools/meson.build index 090179470a..e18adfa7f2 100644 --- a/tools/meson.build +++ b/tools/meson.build @@ -75,7 +75,7 @@ if conf.has('WITH_HOST_VALIDATE') ], install: true, install_dir: bindir, - install_rpath: libdir, + install_rpath: libvirt_rpath, ) endif @@ -112,7 +112,7 @@ if conf.has('WITH_LOGIN_SHELL') ], install: true, install_dir: libexecdir, - install_rpath: libdir, + install_rpath: libvirt_rpath, ) install_data('virt-login-shell.conf', install_dir: sysconfdir / 'libvirt') @@ -197,7 +197,7 @@ executable( ], install: true, install_dir: bindir, - install_rpath: libdir, + install_rpath: libvirt_rpath, ) executable( @@ -219,7 +219,7 @@ executable( ], install: true, install_dir: bindir, - install_rpath: libdir, + install_rpath: libvirt_rpath, ) tools_conf = configuration_data()