From 19917e3e15d86dfdb791c37c3d5918176907ff67 Mon Sep 17 00:00:00 2001 From: stefan11111 Date: Mon, 28 Jul 2025 20:56:46 +0300 Subject: [PATCH] meson.build: Don't silently change the user's option regarding udev support This can cause issues like: #397 Signed-off-by: stefan11111 --- meson.build | 25 +++++++++++++++++++++---- meson_options.txt | 6 ++++-- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/meson.build b/meson.build index f2125d1ca..bd72f400a 100644 --- a/meson.build +++ b/meson.build @@ -182,13 +182,30 @@ if ['windows', 'darwin', 'cygwin'].contains(host_machine.system()) hal_option = 'false' endif -build_udev = get_option('udev') -build_udev_kms = get_option('udev_kms') +udev_option = get_option('udev') +udev_kms_option = get_option('udev_kms') if ['windows', 'darwin', 'netbsd', 'openbsd', 'sunos'].contains(host_machine.system()) - build_udev = false - build_udev_kms = false + if udev_option == 'auto' + udev_option = 'false' + endif + if udev_kms_option == 'auto' + udev_kms_option = 'false' + endif + if udev_option == 'true' or udev_kms_option == 'true' + message('WARNING: udev is not supported on your platform') + endif +else + if udev_option == 'auto' + udev_option = 'true' + endif + if udev_kms_option == 'auto' + udev_kms_option = 'true' + endif endif +build_udev = (udev_option == 'true') +build_udev_kms = (udev_kms_option == 'true') + if get_option('systemd_logind') == 'auto' build_systemd_logind = build_udev_kms and dbus_dep.found() else diff --git a/meson_options.txt b/meson_options.txt index 4b30777ff..de7e0078d 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -64,8 +64,10 @@ option('suid_wrapper', type: 'boolean', value: false, description: 'SUID wrapper for legacy driver support') option('pciaccess', type: 'boolean', value: true, description: 'Xorg pciaccess support') -option('udev', type: 'boolean', value: true) -option('udev_kms', type: 'boolean', value: true) +option('udev', type: 'combo', choices: ['true', 'false', 'auto'], value: 'auto', + description: 'Enable udev hotplugging support') +option('udev_kms', type: 'combo', choices: ['true', 'false', 'auto'], value: 'auto', + description: 'Enable udev kms support') option('hal', type: 'combo', choices: ['true', 'false', 'auto'], value: 'false', description: 'Enable HAL integration') option('systemd_notify', type: 'combo', choices: ['true', 'false', 'auto'], value: 'false',