Bladeren bron

Merge pull request #3254 from akien-mga/pr-joydev-opt-out

Make joydev build using libudev and libevdev opt-out
punto- 9 jaren geleden
bovenliggende
commit
0ba9b267a4
1 gewijzigde bestanden met toevoegingen van 18 en 11 verwijderingen
  1. 18 11
      platform/x11/detect.py

+ 18 - 11
platform/x11/detect.py

@@ -55,6 +55,7 @@ def get_opts():
 	('use_sanitizer','Use llvm compiler sanitize address','no'),
 	('use_sanitizer','Use llvm compiler sanitize address','no'),
 	('use_leak_sanitizer','Use llvm compiler sanitize memory leaks','no'),
 	('use_leak_sanitizer','Use llvm compiler sanitize memory leaks','no'),
 	('pulseaudio','Detect & Use pulseaudio','yes'),
 	('pulseaudio','Detect & Use pulseaudio','yes'),
+	('gamepad','Gamepad support, requires libudev and libevdev','yes'),
 	('new_wm_api', 'Use experimental window management API','no'),
 	('new_wm_api', 'Use experimental window management API','no'),
 	('debug_release', 'Add debug symbols to release version','no'),
 	('debug_release', 'Add debug symbols to release version','no'),
 	]
 	]
@@ -145,23 +146,29 @@ def configure(env):
 			env.Append(CPPPATH=['#tools/freetype/freetype/include'])
 			env.Append(CPPPATH=['#tools/freetype/freetype/include'])
 
 
 
 
-
-	
 	env.Append(CPPFLAGS=['-DOPENGL_ENABLED','-DGLEW_ENABLED'])
 	env.Append(CPPFLAGS=['-DOPENGL_ENABLED','-DGLEW_ENABLED'])
 	if platform.system() == 'Linux':
 	if platform.system() == 'Linux':
 		env.Append(CPPFLAGS=["-DALSA_ENABLED"])
 		env.Append(CPPFLAGS=["-DALSA_ENABLED"])
 		env.Append(LIBS=['asound'])
 		env.Append(LIBS=['asound'])
 
 
-		if not os.system("pkg-config --exists libudev"):
-			if not os.system("pkg-config --exists libevdev"):
-				print("Enabling udev/evdev")
-				env.Append(CPPFLAGS=["-DJOYDEV_ENABLED"])
-				env.ParseConfig('pkg-config libudev --cflags --libs')
-				env.ParseConfig('pkg-config libevdev --cflags --libs')
-			else:
-				print("libevdev development libraries not found, disabling gamepad support")
+	if (env["gamepad"]=="yes" and platform.system() == "Linux"):
+		# pkg-config returns 0 when the lib exists...
+		found_udev = not os.system("pkg-config --exists libudev")
+		found_evdev = not os.system("pkg-config --exists libevdev")
+		
+		if (found_udev and found_evdev):
+			print("Enabling gamepad support with udev/evdev")
+			env.Append(CPPFLAGS=["-DJOYDEV_ENABLED"])
+			env.ParseConfig('pkg-config libudev --cflags --libs')
+			env.ParseConfig('pkg-config libevdev --cflags --libs')
 		else:
 		else:
-			print("libudev development libraries not found, disabling gamepad support")
+			if (not found_udev):
+				print("libudev development libraries not found")
+			if (not found_evdev):
+				print("libevdev development libraries not found")
+			print("Some libraries are missing for the required gamepad support, aborting!")
+			print("Install the mentioned libraries or build with 'gamepad=no' to disable gamepad support.")
+			sys.exit(255)
 
 
 	if (env["pulseaudio"]=="yes"):
 	if (env["pulseaudio"]=="yes"):
 		if not os.system("pkg-config --exists libpulse-simple"):
 		if not os.system("pkg-config --exists libpulse-simple"):