ad7710ae5e
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 ``` (cherry picked from commitsa10c259c1d
ande26a1f807b
) Edit: Updated to version 0.2 of dynload-wrapper to fix symbols clobbering as done in #46143.
25 lines
594 B
Python
25 lines
594 B
Python
#!/usr/bin/env python
|
|
|
|
Import("env")
|
|
|
|
from platform_methods import run_in_subprocess
|
|
import platform_x11_builders
|
|
|
|
common_x11 = [
|
|
"context_gl_x11.cpp",
|
|
"crash_handler_x11.cpp",
|
|
"os_x11.cpp",
|
|
"key_mapping_x11.cpp",
|
|
"joypad_linux.cpp",
|
|
"power_x11.cpp",
|
|
"detect_prime.cpp",
|
|
]
|
|
|
|
if "udev" in env and env["udev"]:
|
|
common_x11.append("libudev-so_wrap.c")
|
|
|
|
prog = env.add_program("#bin/godot", ["godot_x11.cpp"] + common_x11)
|
|
|
|
if env["debug_symbols"] and env["separate_debug_symbols"]:
|
|
env.AddPostAction(prog, run_in_subprocess(platform_x11_builders.make_debug_x11))
|