summaryrefslogtreecommitdiff
path: root/CMake
diff options
context:
space:
mode:
authorJoshua Vandaƫle <joshua@vandaele.software>2026-01-03 12:47:30 +0100
committerJoshua Vandaƫle <joshua@vandaele.software>2026-02-25 07:25:29 +0100
commit3cea68c2e59f71a7b1e634fe31e7fd1dba670a07 (patch)
tree14ca8d753b699497e2915c2acc8c426602282056 /CMake
parent184c6ee068ed7de2c03b7c1426c0700bc20f696e (diff)
LibUSB: Improve library detection
Our FindLibUSB.cmake was previously entirely unused unless SDL was being built from Externals, we now rely on it again. It will use PkgConfig if applicable or fall back to looking around on the system, and more importantly it will always create an imported target.
Diffstat (limited to 'CMake')
-rw-r--r--CMake/FindLibUSB.cmake31
1 files changed, 18 insertions, 13 deletions
diff --git a/CMake/FindLibUSB.cmake b/CMake/FindLibUSB.cmake
index 5a6fc7197f..54403b7aec 100644
--- a/CMake/FindLibUSB.cmake
+++ b/CMake/FindLibUSB.cmake
@@ -11,8 +11,15 @@
if(ANDROID)
set(LIBUSB_FOUND FALSE CACHE INTERNAL "libusb-1.0 found")
message(STATUS "libusb-1.0 not found.")
-elseif (NOT LIBUSB_FOUND)
- pkg_check_modules (LIBUSB_PKG libusb-1.0)
+ return()
+endif()
+
+if(TARGET LibUSB::LibUSB)
+ return()
+endif()
+
+if(NOT LIBUSB_FOUND)
+ pkg_check_modules(LIBUSB_PKG libusb-1.0)
find_path(LIBUSB_INCLUDE_DIR NAMES libusb.h
PATHS
@@ -30,21 +37,19 @@ elseif (NOT LIBUSB_FOUND)
/usr/local/lib
)
- if(LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES)
- set(LIBUSB_FOUND TRUE CACHE INTERNAL "libusb-1.0 found")
- message(STATUS "Found libusb-1.0: ${LIBUSB_INCLUDE_DIR}, ${LIBUSB_LIBRARIES}")
- else(LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES)
- set(LIBUSB_FOUND FALSE CACHE INTERNAL "libusb-1.0 found")
- message(STATUS "libusb-1.0 not found.")
- endif(LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES)
-
mark_as_advanced(LIBUSB_INCLUDE_DIR LIBUSB_LIBRARIES)
-endif ()
-if(LIBUSB_FOUND AND NOT TARGET LibUSB::LibUSB)
+endif()
+
+
+if(LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES)
add_library(LibUSB::LibUSB UNKNOWN IMPORTED)
set_target_properties(LibUSB::LibUSB PROPERTIES
IMPORTED_LOCATION "${LIBUSB_LIBRARIES}"
INTERFACE_INCLUDE_DIRECTORIES "${LIBUSB_INCLUDE_DIR}"
)
+ set(LIBUSB_FOUND TRUE CACHE INTERNAL "libusb-1.0 found")
+ message(STATUS "Found libusb-1.0: ${LIBUSB_INCLUDE_DIR}, ${LIBUSB_LIBRARIES}")
+else()
+ set(LIBUSB_FOUND FALSE CACHE INTERNAL "libusb-1.0 found")
+ message(STATUS "libusb-1.0 not found.")
endif()
-