summaryrefslogtreecommitdiff
path: root/platform/linuxbsd/SCsub
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2021-02-17 11:28:27 +0100
committerRémi Verschelde <rverschelde@gmail.com>2021-02-17 13:14:59 +0100
commita10c259c1d89fbce2d0e05ac60ac5c78d431c070 (patch)
tree15ecd9847fed6cd3a2e08dda46720f48bafb2594 /platform/linuxbsd/SCsub
parentfa8a47e1bf9e3bdd961a7c6bc983bfc600356a7c (diff)
Dynamically load libudev.so.1 on Linux if `udev=yes`
This makes it possibly to run Linux binaries compiled with udev support on Linux systems which do not provide udev (typically systemd-less distros). If udev is missing, we fall back to parsing `/dev/input` like when compiled without udev support (`udev=no`). Also adding some verbose debug statements to know which method we're using when debugging Linux joypad issues. The libudev so wrappers were generated on Mageia 8 with libudev 246.9 using https://github.com/hpvb/dynload-wrapper: ``` ./generate-wrapper.py --include /usr/include/libudev.h --sys-include '<libudev.h>' \ --soname libudev.so.1 --init-name libudev --omit-prefix gnu_ \ --output-header libudev-so_wrap.h --output-implementation libudev-so_wrap.c ```
Diffstat (limited to 'platform/linuxbsd/SCsub')
-rw-r--r--platform/linuxbsd/SCsub3
1 files changed, 3 insertions, 0 deletions
diff --git a/platform/linuxbsd/SCsub b/platform/linuxbsd/SCsub
index ddc698a55b..46714e9502 100644
--- a/platform/linuxbsd/SCsub
+++ b/platform/linuxbsd/SCsub
@@ -16,6 +16,9 @@ common_x11 = [
"key_mapping_x11.cpp",
]
+if "udev" in env and env["udev"]:
+ common_x11.append("libudev-so_wrap.c")
+
prog = env.add_program("#bin/godot", ["godot_linuxbsd.cpp"] + common_x11)
if env["debug_symbols"] and env["separate_debug_symbols"]: