1
0
Fork 0
mirror of https://gitlab.gnome.org/GNOME/calls.git synced 2024-09-19 18:05:25 +00:00
Purism-Calls/data/meson.build
Clayton Craft bf6d4c22f4
data: add systemd unit file for running daemon
This adds a systemd unit file for running the Calls daemon, and adds a
key to the xdg autostart file to instruct gnome-session to ignore
starting when systemd is present. The expectation is that systemd
distros will enable the Calls daemon as a user service and not rely on
xdg autostart / gnome-session for running/managing the service. Systemd
is better at managing services than gnome-session.

Note: it's important to keep the xdg-autostart file around, some distros
(pmOS on openrc, others) don't use systemd and will still need to rely
on the xdg autostart mechanism for starting the Calls daemon.

Co-authored-by: Guido Günther <agx@sigxcpu.org>
2024-07-09 11:00:53 -07:00

120 lines
2.7 KiB
Meson

datadir = get_option('datadir')
sysconfdir = get_option('sysconfdir')
# Desktop file
desktop_file = i18n.merge_file(
input : 'org.gnome.Calls.desktop.in',
output : 'org.gnome.Calls.desktop',
type : 'desktop',
po_dir : po_dir,
install : true,
install_dir : join_paths(datadir, 'applications')
)
desktop_daemon_file = i18n.merge_file(
input : 'org.gnome.Calls-daemon.desktop.in',
output : 'org.gnome.Calls-daemon.desktop',
type : 'desktop',
po_dir : po_dir,
install : true,
install_dir : join_paths(sysconfdir, 'xdg/autostart')
)
service_data = configuration_data()
service_data.set('bindir', full_bindir)
# DBus service
service_file = 'org.gnome.Calls.service'
configure_file(
input : service_file + '.in',
output : service_file,
configuration : service_data,
install : true,
install_dir : full_servicedir,
)
# Systemd user service
systemd_unit = 'calls-daemon.service'
configure_file(
input : systemd_unit + '.in',
output : systemd_unit,
configuration : service_data,
install : true,
install_dir : systemd_user_unit_dir,
)
desktop_utils = find_program('desktop-file-validate', required: false)
if desktop_utils.found()
test('Validate desktop file',
desktop_utils,
args: [
desktop_file.full_path()
],
depends: [
desktop_file,
],
)
test('Validate daemon desktop file',
desktop_utils,
args: [
desktop_daemon_file.full_path()
],
depends: [
desktop_daemon_file,
],
)
endif
# Metainfo file
install_data('org.gnome.Calls.metainfo.xml',
install_dir: join_paths(datadir, 'metainfo'),
)
appstreamcli = find_program('appstreamcli', required: false)
if appstreamcli.found()
test('Validate metainfo file', appstreamcli,
args: ['validate',
'--pedantic',
'--no-net',
join_paths(meson.current_source_dir(),
'org.gnome.Calls.metainfo.xml')
])
endif
# Icons
install_data(
'org.gnome.Calls.svg',
install_dir: join_paths(
datadir,
'icons',
'hicolor',
'scalable',
'apps'
)
)
install_data(
'org.gnome.Calls-symbolic.svg',
install_dir: join_paths(
datadir,
'icons',
'hicolor',
'symbolic',
'apps'
)
)
schema_src = 'org.gnome.Calls.gschema.xml'
compiled = gnome.compile_schemas(build_by_default: true,
depend_files: files(schema_src))
install_data(schema_src,
install_dir: join_paths(get_option('datadir'), 'glib-2.0/schemas')
)
compile_schemas = find_program('glib-compile-schemas', required: false)
if compile_schemas.found()
test('Validate schema file', compile_schemas,
args: ['--strict', '--dry-run', meson.current_source_dir()]
)
endif