diff --git a/cmake/FindLibUSB.cmake b/cmake/FindLibUSB.cmake index 2488735022186..45b7e3878d01d 100644 --- a/cmake/FindLibUSB.cmake +++ b/cmake/FindLibUSB.cmake @@ -10,7 +10,7 @@ if(PKG_CONFIG_FOUND) endif() find_library(LibUSB_LIBRARY - NAMES usb-1.0 libusb-1.0 + NAMES usb-1.0 libusb-1.0 usb HINTS ${PC_LibUSB_LIBRARY_DIRS} ) diff --git a/src/hidapi/SDL_hidapi.c b/src/hidapi/SDL_hidapi.c index b14b75eb4b540..27422ac918629 100644 --- a/src/hidapi/SDL_hidapi.c +++ b/src/hidapi/SDL_hidapi.c @@ -710,7 +710,11 @@ static struct ); void (LIBUSB_CALL *free_config_descriptor)(struct libusb_config_descriptor *config); uint8_t (LIBUSB_CALL *get_bus_number)(libusb_device *dev); +#ifdef SDL_PLATFORM_FREEBSD + int (LIBUSB_CALL *get_port_numbers)(libusb_device *dev, uint8_t *port_numbers, uint8_t port_numbers_len); +#else int (LIBUSB_CALL *get_port_numbers)(libusb_device *dev, uint8_t *port_numbers, int port_numbers_len); +#endif uint8_t (LIBUSB_CALL *get_device_address)(libusb_device *dev); int (LIBUSB_CALL *open)(libusb_device *dev, libusb_device_handle **dev_handle); void (LIBUSB_CALL *close)(libusb_device_handle *dev_handle); @@ -1188,7 +1192,11 @@ int SDL_hid_init(void) LOAD_LIBUSB_SYMBOL(int (LIBUSB_CALL *)(libusb_device *, uint8_t, struct libusb_config_descriptor **), get_config_descriptor) LOAD_LIBUSB_SYMBOL(void (LIBUSB_CALL *)(struct libusb_config_descriptor *), free_config_descriptor) LOAD_LIBUSB_SYMBOL(uint8_t (LIBUSB_CALL *)(libusb_device *), get_bus_number) +#ifdef SDL_PLATFORM_FREEBSD + LOAD_LIBUSB_SYMBOL(int (LIBUSB_CALL *)(libusb_device *dev, uint8_t *port_numbers, uint8_t port_numbers_len), get_port_numbers) +#else LOAD_LIBUSB_SYMBOL(int (LIBUSB_CALL *)(libusb_device *dev, uint8_t *port_numbers, int port_numbers_len), get_port_numbers) +#endif LOAD_LIBUSB_SYMBOL(uint8_t (LIBUSB_CALL *)(libusb_device *), get_device_address) LOAD_LIBUSB_SYMBOL(int (LIBUSB_CALL *)(libusb_device *, libusb_device_handle **), open) LOAD_LIBUSB_SYMBOL(void (LIBUSB_CALL *)(libusb_device_handle *), close)