From 42b74a37d33d039977b31bbbfaa86a63bbe1119c Mon Sep 17 00:00:00 2001 From: malinero Date: Mon, 21 Jun 2021 19:52:56 +0200 Subject: [PATCH] Include Libusb and hidapi on android --- cmake/FindHIDAPI.cmake | 13 +++++++++++-- cmake/FindLibUSB.cmake | 2 +- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/cmake/FindHIDAPI.cmake b/cmake/FindHIDAPI.cmake index 9b45dcc4c..f56bab482 100644 --- a/cmake/FindHIDAPI.cmake +++ b/cmake/FindHIDAPI.cmake @@ -39,19 +39,28 @@ find_package_handle_standard_args(HIDAPI if(HIDAPI_FOUND) set(HIDAPI_LIBRARIES "${HIDAPI_LIBRARY}") - if((STATIC AND UNIX AND NOT APPLE) OR (DEPENDS AND CMAKE_SYSTEM_NAME STREQUAL "Linux")) + if((STATIC AND UNIX AND NOT APPLE) OR (DEPENDS AND CMAKE_SYSTEM_NAME STREQUAL "Linux") OR ANDROID) find_library(LIBUSB-1.0_LIBRARY usb-1.0) find_library(LIBUDEV_LIBRARY udev) if(LIBUSB-1.0_LIBRARY) set(HIDAPI_LIBRARIES "${HIDAPI_LIBRARIES};${LIBUSB-1.0_LIBRARY}") if(LIBUDEV_LIBRARY) set(HIDAPI_LIBRARIES "${HIDAPI_LIBRARIES};${LIBUDEV_LIBRARY}") - else() + elseif(NOT ANDROID) message(WARNING "libudev library not found, binaries may fail to link.") endif() else() message(WARNING "libusb-1.0 library not found, binaries may fail to link.") endif() + if(ANDROID) + # libusb uses android log library + find_library(ANDROID_LOG_LIBRARY log) + if(ANDROID_LOG_LIBRARY) + set(HIDAPI_LIBRARIES "${HIDAPI_LIBRARIES};${ANDROID_LOG_LIBRARY}") + else() + message(WARNING "Android log library not found, binaries may fail to link.") + endif() + endif() endif() set(HIDAPI_INCLUDE_DIRS "${HIDAPI_INCLUDE_DIR}") diff --git a/cmake/FindLibUSB.cmake b/cmake/FindLibUSB.cmake index 79d8fba75..37f699bea 100644 --- a/cmake/FindLibUSB.cmake +++ b/cmake/FindLibUSB.cmake @@ -99,7 +99,7 @@ if ( LibUSB_FOUND ) check_library_exists ( "${LibUSB_LIBRARIES}" libusb_get_device_list "" LibUSB_VERSION_1.0 ) check_library_exists ( "${LibUSB_LIBRARIES}" libusb_get_port_numbers "" LibUSB_VERSION_1.0.16 ) - if((STATIC AND UNIX AND NOT APPLE) OR (DEPENDS AND CMAKE_SYSTEM_NAME STREQUAL "Linux")) + if((STATIC AND UNIX AND NOT APPLE) OR (DEPENDS AND CMAKE_SYSTEM_NAME STREQUAL "Linux") OR ANDROID) find_library(LIBUDEV_LIBRARY udev) if(LIBUDEV_LIBRARY) set(LibUSB_LIBRARIES "${LibUSB_LIBRARIES};${LIBUDEV_LIBRARY}")