From 4a29b6a651a141517775be56b7feb9797e09769f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Vanda=C3=ABle?= <[EMAIL REDACTED]>
Date: Fri, 2 Jan 2026 15:01:55 +0100
Subject: [PATCH] Fix dynamic library handling for LibUSB
`target_get_dynamic_library` should not be called if `SDL_HIDAPI_LIBUSB_SHARED` is set to OFF, it otherwise causes a warning at best, or a build failure if libusb is provided by a parent project and not installed on the system
---
cmake/sdlchecks.cmake | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/cmake/sdlchecks.cmake b/cmake/sdlchecks.cmake
index b60a87153f96e..0d941ba191eab 100644
--- a/cmake/sdlchecks.cmake
+++ b/cmake/sdlchecks.cmake
@@ -1270,12 +1270,15 @@ macro(CheckHIDAPI)
cmake_pop_check_state()
if(HAVE_LIBUSB_H)
set(HAVE_LIBUSB TRUE)
- target_get_dynamic_library(dynamic_libusb LibUSB::LibUSB)
- if(SDL_HIDAPI_LIBUSB_SHARED AND dynamic_libusb)
- set(HAVE_HIDAPI_LIBUSB_SHARED ON)
- set(SDL_LIBUSB_DYNAMIC "\"${dynamic_libusb}\"")
- sdl_link_dependency(hidapi INCLUDES $<TARGET_PROPERTY:LibUSB::LibUSB,INTERFACE_INCLUDE_DIRECTORIES>)
- else()
+ if(SDL_HIDAPI_LIBUSB_SHARED)
+ target_get_dynamic_library(dynamic_libusb LibUSB::LibUSB)
+ if(dynamic_libusb)
+ set(HAVE_HIDAPI_LIBUSB_SHARED ON)
+ set(SDL_LIBUSB_DYNAMIC "\"${dynamic_libusb}\"")
+ sdl_link_dependency(hidapi INCLUDES $<TARGET_PROPERTY:LibUSB::LibUSB,INTERFACE_INCLUDE_DIRECTORIES>)
+ endif()
+ endif()
+ if(NOT HAVE_HIDAPI_LIBUSB_SHARED)
sdl_link_dependency(hidapi LIBS LibUSB::LibUSB PKG_CONFIG_SPECS "${LibUSB_PKG_CONFIG_SPEC}" CMAKE_MODULE LibUSB)
endif()
endif()