diff --git a/meson.build b/meson.build index 12d3dab..5d047b4 100644 --- a/meson.build +++ b/meson.build @@ -9,13 +9,19 @@ project('qrtr', ]) prefix = get_option('prefix') -systemd = dependency('systemd') -systemd_system_unit_dir = get_option('systemd-unit-prefix') -if systemd_system_unit_dir == '' - systemd_system_unit_dir = systemd.get_variable( - pkgconfig : 'systemdsystemunitdir', +install_systemd_unit = get_option('systemd-service') +systemd = dependency('systemd', required : install_systemd_unit) +if systemd.found() + systemd_system_unit_dir = get_option('systemd-unit-prefix') + if systemd_system_unit_dir == '' + systemd_system_unit_dir = systemd.get_variable( + pkgconfig : 'systemdsystemunitdir', pkgconfig_define: ['prefix', prefix]) + else + message('Could not resolve systemd dependencies, skipping unit file') + install_systemd_unit = false + endif endif inc = include_directories('include') @@ -23,10 +29,12 @@ subdir('lib') subdir('include') subdir('src') -systemd_unit_conf = configuration_data() -systemd_unit_conf.set('prefix', prefix) -configure_file( - input : 'qrtr-ns.service.in', - output : 'qrtr-ns.service', - configuration : systemd_unit_conf, - install_dir : systemd_system_unit_dir) +if systemd.found() + systemd_unit_conf = configuration_data() + systemd_unit_conf.set('prefix', prefix) + configure_file( + input : 'qrtr-ns.service.in', + output : 'qrtr-ns.service', + configuration : systemd_unit_conf, + install_dir : systemd_system_unit_dir) +endif diff --git a/meson_options.txt b/meson_options.txt index 3835395..bd264c7 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -2,3 +2,9 @@ option('systemd-unit-prefix', type: 'string', description: 'Directory for systemd system unit files' ) + +option('systemd-service', + type: 'feature', + value: 'auto', + description: 'Whether or not the systemd service should be built' +)