From 42b74a37d33d039977b31bbbfaa86a63bbe1119c Mon Sep 17 00:00:00 2001
From: malinero <malinero@protonmail.com>
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}")