@@ -26,22 +26,43 @@ ENDIF(CMAKE_SYSTEM_NAME MATCHES FreeBSD)
2626
2727IF (NOT LIBUSB_FOUND)
2828 IF (WIN32 )
29+ SET (LIBUSB_ROOT "$ENV{ProgramFiles} /libusb" )
30+ FIND_PATH (LIBUSB_INCLUDE_DIRS libusb.h "${LIBUSB_ROOT} /include" NO_SYSTEM_ENVIRONMENT_PATH )
2931 IF (MINGW)
30- FIND_PATH (LIBUSB_INCLUDE_DIRS lusb0_usb.h "${CMAKE_CURRENT_BINARY_DIR } /LibUSB-Win32/include" NO_SYSTEM_ENVIRONMENT_PATH )
31- FIND_LIBRARY (LIBUSB_LIBRARIES NAMES libusb PATHS "${CMAKE_CURRENT_BINARY_DIR } /LibUSB-Win32/lib/gcc" )
32- SET (LIBUSB_LIBRARY_DIR "${CMAKE_CURRENT_BINARY_DIR } /LibUSB-Win32/bin/x86/" )
32+ IF (CMAKE_SIZEOF_VOID_P EQUAL 8)
33+ FIND_LIBRARY (LIBUSB_LIBRARIES NAMES usb-1.0 PATHS "${LIBUSB_ROOT} /MinGW64/static" NO_SYSTEM_ENVIRONMENT_PATH )
34+ SET (LIBUSB_LIBRARY_DIR "${LIBUSB_ROOT} /MinGW64/dll" )
35+ ELSE ()
36+ FIND_LIBRARY (LIBUSB_LIBRARIES NAMES usb-1.0 PATHS "${LIBUSB_ROOT} /MinGW32/static" NO_SYSTEM_ENVIRONMENT_PATH )
37+ SET (LIBUSB_LIBRARY_DIR "${LIBUSB_ROOT} /MinGW32/dll" )
38+ ENDIF ()
3339 ELSE (MINGW )
34- FIND_PATH (LIBUSB_INCLUDE_DIRS lusb0_usb.h "$ENV{ProgramW6432} /libusb-win32/include" NO_SYSTEM_ENVIRONMENT_PATH )
35- FIND_LIBRARY (LIBUSB_LIBRARIES NAMES libusb PATHS "$ENV{ProgramW6432} /libusb-win32/lib/msvc_x64" )
36- SET (LIBUSB_LIBRARY_DIR "$ENV{ProgramW6432} /libusb-win32/bin/amd64/" )
40+ IF (MSVC_VERSION GREATER_EQUAL 1930)
41+ SET (LIBUSB_VS_DIR "VS2022" )
42+ ELSEIF (MSVC_VERSION GREATER_EQUAL 1920)
43+ SET (LIBUSB_VS_DIR "VS2019" )
44+ ELSEIF (MSVC_VERSION GREATER_EQUAL 1910)
45+ SET (LIBUSB_VS_DIR "VS2017" )
46+ ELSEIF (MSVC_VERSION GREATER_EQUAL 1900)
47+ SET (LIBUSB_VS_DIR "VS2015" )
48+ ELSE ()
49+ SET (LIBUSB_VS_DIR "VS2013" )
50+ ENDIF ()
51+ IF (CMAKE_SIZEOF_VOID_P EQUAL 8)
52+ FIND_LIBRARY (LIBUSB_LIBRARIES NAMES libusb-1.0 PATHS "${LIBUSB_ROOT} /${LIBUSB_VS_DIR} /MS64/dll" "${LIBUSB_ROOT} /${LIBUSB_VS_DIR} /MS64/static" NO_SYSTEM_ENVIRONMENT_PATH )
53+ SET (LIBUSB_LIBRARY_DIR "${LIBUSB_ROOT} /${LIBUSB_VS_DIR} /MS64/dll" )
54+ ELSE ()
55+ FIND_LIBRARY (LIBUSB_LIBRARIES NAMES libusb-1.0 PATHS "${LIBUSB_ROOT} /${LIBUSB_VS_DIR} /MS32/dll" "${LIBUSB_ROOT} /${LIBUSB_VS_DIR} /MS32/static" NO_SYSTEM_ENVIRONMENT_PATH )
56+ SET (LIBUSB_LIBRARY_DIR "${LIBUSB_ROOT} /${LIBUSB_VS_DIR} /MS32/dll" )
57+ ENDIF ()
3758 ENDIF (MINGW )
3859 # Must fix up variable to avoid backslashes during packaging
3960 STRING (REGEX REPLACE "\\\\ " "/" LIBUSB_LIBRARY_DIR ${LIBUSB_LIBRARY_DIR} )
4061 ELSE (WIN32 )
4162 # If not under Windows we use PkgConfig
4263 FIND_PACKAGE (PkgConfig )
4364 IF (PKG_CONFIG_FOUND)
44- PKG_CHECK_MODULES (LIBUSB REQUIRED libusb )
65+ PKG_CHECK_MODULES (LIBUSB REQUIRED libusb-1.0 )
4566 ELSE (PKG_CONFIG_FOUND )
4667 MESSAGE (FATAL_ERROR "Could not find PkgConfig" )
4768 ENDIF (PKG_CONFIG_FOUND )
0 commit comments