summaryrefslogtreecommitdiff
path: root/monitor/meson.build
diff options
context:
space:
mode:
Diffstat (limited to 'monitor/meson.build')
-rw-r--r--monitor/meson.build70
1 files changed, 61 insertions, 9 deletions
diff --git a/monitor/meson.build b/monitor/meson.build
index f841bdce..53e18806 100644
--- a/monitor/meson.build
+++ b/monitor/meson.build
@@ -1,21 +1,73 @@
subdir('proxy')
-if enable_udisks2
- subdir('udisks2')
+# [[service name suffix, install monitor test data]]
+monitors = []
+
+if enable_afc
+ monitors += [['Afc', true]]
endif
-if enable_gphoto2
- subdir('gphoto2')
+if enable_goa
+ monitors += [['Goa', false]]
endif
-if enable_afc
- subdir('afc')
+if enable_gphoto2
+ monitors += [['GPhoto2', true]]
endif
if enable_mtp
- subdir('mtp')
+ monitors += [['MTP', false]]
endif
-if enable_goa
- subdir('goa')
+if enable_udisks2
+ monitors += [['UDisks2', true]]
endif
+
+monitors_test_data = []
+foreach monitor: monitors
+ monitor_name = monitor[0].to_lower()
+
+ dbus_service = '@0@.@1@VolumeMonitor'.format(gvfs_namespace, monitor[0])
+ dbus_exec = 'gvfs-@0@-volume-monitor'.format(monitor_name)
+ dbus_systemd_service = ''
+
+ if install_systemd_user_unit_dir
+ service = dbus_exec + '.service'
+
+ configure_file(
+ input: join_paths(monitor_name, service + '.in'),
+ output: service,
+ install: true,
+ install_dir: systemd_user_unit_dir,
+ configuration: service_conf
+ )
+
+ dbus_systemd_service = 'SystemdService=' + service
+ endif
+
+ monitor_data = files(join_paths(monitor_name, monitor_name + '.monitor'))
+
+ install_data(
+ monitor_data,
+ install_dir: gvfs_remote_volume_monitors_dir
+ )
+
+ dbus_service_conf = configuration_data()
+ dbus_service_conf.set('service', dbus_service)
+ dbus_service_conf.set('exec', join_paths(gvfs_libexecdir, dbus_exec))
+ dbus_service_conf.set('systemd_service', dbus_systemd_service)
+
+ monitor_service = configure_file(
+ input: dbus_service_in,
+ output: dbus_service + '.service',
+ install: true,
+ install_dir: dbus_service_dir,
+ configuration: dbus_service_conf
+ )
+
+ if monitor[1]
+ monitors_test_data += [monitor_data, monitor_service]
+ endif
+
+ subdir(monitor_name)
+endforeach