diff --git a/meson.build b/meson.build index 966a9ba..cc9d8c2 100644 --- a/meson.build +++ b/meson.build @@ -121,9 +121,17 @@ gusb = dependency('gusb', version : '>= 0.2.7') gudev = dependency('gudev-1.0') libm = cc.find_library('m', required: false) libudev = dependency('libudev') +udev_rules_dir = '' if get_option('udev_rules') - udev = dependency('udev') + udev = dependency('udev', required : false) + if udev.found() + udev_rules_dir = join_paths(udev.get_pkgconfig_variable('udevdir'), 'rules.d') + elif get_option('udev_rules_dir') != '' + udev_rules_dir = get_option('udev_rules_dir') + else + udev_rules_dir = join_paths(libudev.get_pkgconfig_variable('libdir'), 'udev', 'rules.d') + endif endif if get_option('systemd') diff --git a/meson_options.txt b/meson_options.txt index 88d0b7b..b1cfe42 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -2,6 +2,7 @@ option('daemon', type : 'boolean', value : true, description : 'build the daemon option('session_example', type : 'boolean', value : false, description : 'Enable session example') option('bash_completion', type : 'boolean', value : true, description : 'Enable bash completion') option('udev_rules', type: 'boolean', value: true, description: 'Install udev rules') +option('udev_rules_dir', type : 'string', value : '', description : 'Directory to install udev rules into when udev.pc is unavailable') option('systemd', type : 'boolean', value : true, description : 'Enable systemd integration') option('systemd_root_prefix', type: 'string', value: '', description: 'Directory to base systemd’s installation directories on') option('libcolordcompat', type : 'boolean', value : false, description : 'Enable libcolordcompat.so which is used by ArgyllCMS') diff --git a/rules/meson.build b/rules/meson.build index 7985e1d..4f328c9 100644 --- a/rules/meson.build +++ b/rules/meson.build @@ -9,5 +9,5 @@ install_data([ sensor_rules_in, '95-cd-devices.rules', ], - install_dir : join_paths(udev.get_pkgconfig_variable('udevdir'), 'rules.d') + install_dir : udev_rules_dir )