summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIñigo Martínez <inigomartinez@gmail.com>2018-04-09 20:44:50 +0200
committerIñigo Martínez <inigomartinez@gmail.com>2018-08-11 22:55:53 +0200
commit9f0651c795ad0f6cfa19e78baa661f940c94b6d2 (patch)
tree4aac77f2018747eb423ecd211c2aacc4cac04e9d
parent082a10cbadd6d7951d12c9b92aa5e1e7278f0068 (diff)
downloaddconf-9f0651c795ad0f6cfa19e78baa661f940c94b6d2.tar.gz
build: Retrieve D-Bus and gio paths from pkg-config files
D-Bus' session bus services' paths and gio's module's paths are hardcoded. However, these directories can be retrieved by checking this information from their pkgconfig files. This patch retrieves the paths for their correspondant pkgconfig files and uses those paths as installation directories. The options to set different directories for these options are not necessary anymore, so they have been removed. Finally, the post install script does not depend anymore on the existence of `gio-querymodules` and is always executed.
-rw-r--r--gsettings/meson.build2
-rw-r--r--meson.build13
-rw-r--r--meson_options.txt3
-rw-r--r--meson_post_install.py2
-rw-r--r--service/meson.build12
5 files changed, 7 insertions, 25 deletions
diff --git a/gsettings/meson.build b/gsettings/meson.build
index a1d0207..41e65ad 100644
--- a/gsettings/meson.build
+++ b/gsettings/meson.build
@@ -16,7 +16,7 @@ libdconf_settings = shared_library(
libgvdb_shared
],
install: true,
- install_dir: join_paths(dconf_libdir, 'gio', 'modules')
+ install_dir: gio_module_dir
)
envs = test_env + [
diff --git a/meson.build b/meson.build
index 9ed24ba..b1bbaa4 100644
--- a/meson.build
+++ b/meson.build
@@ -68,15 +68,8 @@ gio_unix_req_version = '>= 2.25.7'
glib_dep = dependency('glib-2.0', version: '>= 2.44.0')
gio_unix_dep = dependency('gio-unix-2.0', version: gio_unix_req_version)
-gio_querymodules = find_program('gio-querymodules', required: false)
-if gio_querymodules.found()
- gio_modules_dir = get_option('gio_modules_dir')
- if gio_modules_dir == ''
- gio_modules_dir = join_paths(dconf_libdir, 'gio', 'modules')
- endif
-
- meson.add_install_script('meson_post_install.py', gio_querymodules.path(), gio_modules_dir)
-endif
+gio_module_dir = dependency('gio-2.0').get_pkgconfig_variable('giomoduledir', define_variable: ['libdir', dconf_libdir])
+dbus_session_service_dir = dependency('dbus-1').get_pkgconfig_variable('session_bus_services_dir', define_variable: ['datadir', dconf_datadir])
configure_file(
output: 'config.h',
@@ -105,3 +98,5 @@ subdir('client')
subdir('bin')
subdir('docs')
subdir('tests')
+
+meson.add_install_script('meson_post_install.py', gio_module_dir)
diff --git a/meson_options.txt b/meson_options.txt
index 4599ada..76e88ea 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -1,5 +1,2 @@
option('man', type: 'boolean', value: true, description: 'generate man pages')
-option('gio_modules_dir', type: 'string', value: '', description: 'choose directory for the GIO module [default=LIBDIR/gio/modules]')
-option('dbus_service_dir', type: 'string', value: '', description: 'choose directory for dbus service files [default=PREFIX/share/dbus-1/services]')
-option('dbus_system_service_dir', type: 'string', value: '', description: 'choose directory for dbus system service files [default=PREFIX/share/dbus-1/system-services]')
option('gtk_doc', type: 'boolean', value: false, description: 'use gtk-doc to build documentation')
diff --git a/meson_post_install.py b/meson_post_install.py
index 8960540..3082d42 100644
--- a/meson_post_install.py
+++ b/meson_post_install.py
@@ -6,4 +6,4 @@ import sys
if not os.environ.get('DESTDIR'):
print('GIO module cache creation...')
- subprocess.call([sys.argv[1], sys.argv[2]])
+ subprocess.call(['gio-querymodules', sys.argv[1]])
diff --git a/service/meson.build b/service/meson.build
index 800dd87..87184aa 100644
--- a/service/meson.build
+++ b/service/meson.build
@@ -1,13 +1,3 @@
-dbus_service_dir = get_option('dbus_service_dir')
-if dbus_service_dir == ''
- dbus_service_dir = join_paths(dconf_datadir, 'dbus-1', 'services')
-endif
-
-dbus_system_service_dir = get_option('dbus_system_service_dir')
-if dbus_system_service_dir == ''
- dbus_system_service_dir = join_paths(dconf_datadir, 'dbus-1', 'system-services')
-endif
-
service_conf = configuration_data()
service_conf.set('libexecdir', dconf_libexecdir)
@@ -17,7 +7,7 @@ configure_file(
input: service + '.in',
output: service,
install: true,
- install_dir: dbus_service_dir,
+ install_dir: dbus_session_service_dir,
configuration: service_conf
)