mirror of
				https://github.com/godotengine/godot.git
				synced 2025-10-30 21:21:10 +00:00 
			
		
		
		
	 a10c259c1d
			
		
	
	
		a10c259c1d
		
			
		
	
	
	
	
		
			
			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 ```
		
			
				
	
	
		
			25 lines
		
	
	
	
		
			667 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
	
		
			667 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| #!/usr/bin/env python
 | |
| 
 | |
| Import("env")
 | |
| 
 | |
| from platform_methods import run_in_subprocess
 | |
| import platform_linuxbsd_builders
 | |
| 
 | |
| common_x11 = [
 | |
|     "crash_handler_linuxbsd.cpp",
 | |
|     "os_linuxbsd.cpp",
 | |
|     "joypad_linux.cpp",
 | |
|     "context_gl_x11.cpp",
 | |
|     "detect_prime_x11.cpp",
 | |
|     "display_server_x11.cpp",
 | |
|     "vulkan_context_x11.cpp",
 | |
|     "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"]:
 | |
|     env.AddPostAction(prog, run_in_subprocess(platform_linuxbsd_builders.make_debug_linuxbsd))
 |