فهرست منبع

cmake: find libudev library so it gets priority

Anonymous Maarten 2 سال پیش
والد
کامیت
d0e14008b5
3فایلهای تغییر یافته به همراه16 افزوده شده و 1 حذف شده
  1. 2 1
      CMakeLists.txt
  2. 13 0
      cmake/sdlchecks.cmake
  3. 1 0
      include/SDL_config.h.cmake

+ 2 - 1
CMakeLists.txt

@@ -508,6 +508,7 @@ set_option(SDL_HIDAPI              "Enable the HIDAPI subsystem" ON)
 dep_option(SDL_HIDAPI_LIBUSB       "Use libusb for low level joystick drivers" OFF SDL_HIDAPI OFF)
 dep_option(SDL_HIDAPI_JOYSTICK     "Use HIDAPI for low level joystick drivers" ON SDL_HIDAPI OFF)
 dep_option(SDL_VIRTUAL_JOYSTICK    "Enable the virtual-joystick driver" ON SDL_HIDAPI OFF)
+set_option(SDL_LIBUDEV             "Enable libudev support" ON)
 set_option(SDL_ASAN                "Use AddressSanitizer to detect memory errors" OFF)
 option_string(SDL_VENDOR_INFO      "Vendor name and/or version to add to SDL_REVISION" "")
 set_option(SDL_CCACHE              "Use Ccache to speed up build" ON)
@@ -1495,7 +1496,7 @@ elseif(UNIX AND NOT APPLE AND NOT RISCOS AND NOT HAIKU)
       set(SDL_INPUT_WSCONS 1)
     endif()
 
-    check_include_file("libudev.h" HAVE_LIBUDEV_H)
+    CheckLibUDev()
     check_include_file("sys/inotify.h" HAVE_SYS_INOTIFY_H)
     check_symbol_exists(inotify_init "sys/inotify.h" HAVE_INOTIFY_INIT)
     check_symbol_exists(inotify_init1 "sys/inotify.h" HAVE_INOTIFY_INIT1)

+ 13 - 0
cmake/sdlchecks.cmake

@@ -1139,3 +1139,16 @@ macro(CheckKMSDRM)
     endif()
   endif()
 endmacro()
+
+macro(CheckLibUDev)
+  if(SDL_LIBUDEV)
+    check_include_file("libudev.h" have_libudev_header)
+    if(have_libudev_header)
+      set(HAVE_LIBUDEV_H TRUE)
+      FindLibraryAndSONAME(udev)
+      if(UDEV_LIB_SONAME)
+        set(SDL_UDEV_DYNAMIC "\"${UDEV_LIB_SONAME}\"")
+      endif()
+    endif()
+  endif()
+endmacro()

+ 1 - 0
include/SDL_config.h.cmake

@@ -345,6 +345,7 @@
 #cmakedefine SDL_HAPTIC_XINPUT @SDL_HAPTIC_XINPUT@
 #cmakedefine SDL_HAPTIC_ANDROID @SDL_HAPTIC_ANDROID@
 #cmakedefine SDL_LIBUSB_DYNAMIC @SDL_LIBUSB_DYNAMIC@
+#cmakedefine SDL_UDEV_DYNAMIC @SDL_UDEV_DYNAMIC@
 
 /* Enable various sensor drivers */
 #cmakedefine SDL_SENSOR_ANDROID @SDL_SENSOR_ANDROID@