summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorRyan C. Gordon <icculus@icculus.org>2019-07-08 16:46:52 -0400
committerRyan C. Gordon <icculus@icculus.org>2019-07-08 16:46:52 -0400
commit192df0fd1d8eafb68b3ef04f78f4ee00edd1629b (patch)
treed9e02ffbda760a45ef817ed4a4a706bcdeb4da47 /cmake
parent6a664f07dcfe637f3f520d8edb17aa2a6dea4161 (diff)
downloadsdl-192df0fd1d8eafb68b3ef04f78f4ee00edd1629b.tar.gz
cmake: Added HIDAPI support.
Diffstat (limited to 'cmake')
-rw-r--r--cmake/sdlchecks.cmake31
1 files changed, 31 insertions, 0 deletions
diff --git a/cmake/sdlchecks.cmake b/cmake/sdlchecks.cmake
index f71b3d494..5d4d2f936 100644
--- a/cmake/sdlchecks.cmake
+++ b/cmake/sdlchecks.cmake
@@ -1065,6 +1065,37 @@ macro(CheckUSBHID)
endif()
endmacro()
+# Check for HIDAPI joystick drivers. This is currently a Unix thing, not Windows or macOS!
+macro(CheckHIDAPI)
+ if(HIDAPI)
+ if(HIDAPI_SKIP_LIBUSB)
+ set(HAVE_HIDAPI TRUE)
+ else()
+ set(HAVE_HIDAPI FALSE)
+ pkg_check_modules(LIBUSB libusb)
+ if (LIBUSB_FOUND)
+ check_include_file(libusb.h HAVE_LIBUSB_H)
+ if (HAVE_LIBUSB_H)
+ set(HAVE_HIDAPI TRUE)
+ endif()
+ endif()
+ endif()
+
+ if(HAVE_HIDAPI)
+ set(SDL_JOYSTICK_HIDAPI 1)
+ set(HAVE_SDL_JOYSTICK TRUE)
+ file(GLOB HIDAPI_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/hidapi/*.c)
+ set(SOURCE_FILES ${SOURCE_FILES} ${HIDAPI_SOURCES})
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${LIBUSB_CFLAGS} -I${SDL2_SOURCE_DIR}/src/hidapi/hidapi")
+ if(NOT HIDAPI_SKIP_LIBUSB)
+ set(SOURCE_FILES ${SOURCE_FILES} ${SDL2_SOURCE_DIR}/src/hidapi/libusb/hid.c)
+ list(APPEND EXTRA_LIBS ${LIBUSB_LIBS})
+ endif()
+ endif()
+ endif()
+endmacro()
+
+
# Requires:
# - n/a
macro(CheckRPI)