From 17b329d199899da4bc328632f852e3c96f98c665 Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Tue, 26 Jul 2022 02:51:07 +0200
Subject: [PATCH] cmake: enable disabing hidapi
---
CMakeLists.txt | 10 +++---
cmake/sdlchecks.cmake | 78 +++++++++++++++++++++++--------------------
2 files changed, 47 insertions(+), 41 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 13fbe81b961..c8840b116c4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -515,10 +515,12 @@ set_option(SDL_INSTALL_TESTS "Install test-cases" OFF)
set(HAVE_STATIC_PIC "${SDL_STATIC_PIC}")
-if(HIDAPI_ONLY_LIBUSB)
- set(SDL_HIDAPI_LIBUSB ON CACHE BOOL "" FORCE)
-elseif(HIDAPI_SKIP_LIBUSB)
- set(SDL_HIDAPI_LIBUSB OFF CACHE BOOL "" FORCE)
+if(SDL_HIDAPI)
+ if(HIDAPI_ONLY_LIBUSB)
+ set(SDL_HIDAPI_LIBUSB ON CACHE BOOL "" FORCE)
+ elseif(HIDAPI_SKIP_LIBUSB)
+ set(SDL_HIDAPI_LIBUSB OFF CACHE BOOL "" FORCE)
+ endif()
endif()
if(VITA)
diff --git a/cmake/sdlchecks.cmake b/cmake/sdlchecks.cmake
index 198a7e9a156..7e2507505e5 100644
--- a/cmake/sdlchecks.cmake
+++ b/cmake/sdlchecks.cmake
@@ -1176,49 +1176,53 @@ endmacro()
# Check for HIDAPI support
macro(CheckHIDAPI)
set(HAVE_HIDAPI TRUE)
- if(SDL_HIDAPI_LIBUSB)
- set(HAVE_LIBUSB FALSE)
- pkg_check_modules(LIBUSB libusb-1.0)
- if(LIBUSB_FOUND)
- check_include_file(libusb.h HAVE_LIBUSB_H ${LIBUSB_CFLAGS})
- if(HAVE_LIBUSB_H)
- set(HAVE_LIBUSB TRUE)
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${LIBUSB_CFLAGS}")
- if(HIDAPI_ONLY_LIBUSB)
- list(APPEND EXTRA_LIBS ${LIBUSB_LIBS})
- elseif(OS2)
- set(SDL_LIBUSB_DYNAMIC "\"usb100.dll\"")
- else()
- # libusb is loaded dynamically, so don't add it to EXTRA_LIBS
- FindLibraryAndSONAME("usb-1.0")
- if(USB_1.0_LIB)
- set(SDL_LIBUSB_DYNAMIC "\"${USB_1.0_LIB_SONAME}\"")
+ if(SDL_HIDAPI)
+ if(SDL_HIDAPI_LIBUSB)
+ set(HAVE_LIBUSB FALSE)
+ pkg_check_modules(LIBUSB libusb-1.0)
+ if(LIBUSB_FOUND)
+ check_include_file(libusb.h HAVE_LIBUSB_H ${LIBUSB_CFLAGS})
+ if(HAVE_LIBUSB_H)
+ set(HAVE_LIBUSB TRUE)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${LIBUSB_CFLAGS}")
+ if(HIDAPI_ONLY_LIBUSB)
+ list(APPEND EXTRA_LIBS ${LIBUSB_LIBS})
+ elseif(OS2)
+ set(SDL_LIBUSB_DYNAMIC "\"usb100.dll\"")
+ else()
+ # libusb is loaded dynamically, so don't add it to EXTRA_LIBS
+ FindLibraryAndSONAME("usb-1.0")
+ if(USB_1.0_LIB)
+ set(SDL_LIBUSB_DYNAMIC "\"${USB_1.0_LIB_SONAME}\"")
+ endif()
endif()
endif()
endif()
+ if(HIDAPI_ONLY_LIBUSB AND NOT HAVE_LIBUSB)
+ set(HAVE_HIDAPI FALSE)
+ endif()
endif()
- if(HIDAPI_ONLY_LIBUSB AND NOT HAVE_LIBUSB)
- set(HAVE_HIDAPI FALSE)
- endif()
- endif()
- if(HAVE_HIDAPI)
- if(ANDROID)
- list(APPEND SOURCE_FILES ${SDL2_SOURCE_DIR}/src/hidapi/android/hid.cpp)
- endif()
- if(IOS OR TVOS)
- list(APPEND SOURCE_FILES ${SDL2_SOURCE_DIR}/src/hidapi/ios/hid.m)
- set(SDL_FRAMEWORK_COREBLUETOOTH 1)
- endif()
- set(HAVE_SDL_HIDAPI TRUE)
-
- if(SDL_JOYSTICK AND SDL_HIDAPI_JOYSTICK)
- set(SDL_JOYSTICK_HIDAPI 1)
- set(HAVE_SDL_JOYSTICK TRUE)
- set(HAVE_HIDAPI_JOYSTICK TRUE)
- file(GLOB HIDAPI_JOYSTICK_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/hidapi/*.c)
- list(APPEND SOURCE_FILES ${HIDAPI_JOYSTICK_SOURCES})
+ if(HAVE_HIDAPI)
+ if(ANDROID)
+ list(APPEND SOURCE_FILES ${SDL2_SOURCE_DIR}/src/hidapi/android/hid.cpp)
+ endif()
+ if(IOS OR TVOS)
+ list(APPEND SOURCE_FILES ${SDL2_SOURCE_DIR}/src/hidapi/ios/hid.m)
+ set(SDL_FRAMEWORK_COREBLUETOOTH 1)
+ endif()
+ set(HAVE_SDL_HIDAPI TRUE)
+
+ if(SDL_JOYSTICK AND SDL_HIDAPI_JOYSTICK)
+ set(SDL_JOYSTICK_HIDAPI 1)
+ set(HAVE_SDL_JOYSTICK TRUE)
+ set(HAVE_HIDAPI_JOYSTICK TRUE)
+ file(GLOB HIDAPI_JOYSTICK_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/hidapi/*.c)
+ list(APPEND SOURCE_FILES ${HIDAPI_JOYSTICK_SOURCES})
+ endif()
endif()
+ else()
+ set(SDL_HIDAPI_DISABLED 1)
endif()
endmacro()