diff options
author | Ryan C. Gordon <icculus@icculus.org> | 2019-07-08 16:46:52 -0400 |
---|---|---|
committer | Ryan C. Gordon <icculus@icculus.org> | 2019-07-08 16:46:52 -0400 |
commit | 192df0fd1d8eafb68b3ef04f78f4ee00edd1629b (patch) | |
tree | d9e02ffbda760a45ef817ed4a4a706bcdeb4da47 /cmake | |
parent | 6a664f07dcfe637f3f520d8edb17aa2a6dea4161 (diff) | |
download | sdl-192df0fd1d8eafb68b3ef04f78f4ee00edd1629b.tar.gz |
cmake: Added HIDAPI support.
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/sdlchecks.cmake | 31 |
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) |