From 45c28d8a0e1b56f71e7afc36940668d79065eae4 Mon Sep 17 00:00:00 2001
From: xiphon <xiphon@protonmail.com>
Date: Tue, 9 Jul 2019 21:57:48 +0000
Subject: [PATCH] build: fix OSX static libusb check and link against static
 libobjc

---
 cmake/CheckTrezor.cmake | 4 ++--
 cmake/FindLibUSB.cmake  | 6 ++++++
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/cmake/CheckTrezor.cmake b/cmake/CheckTrezor.cmake
index 6aabdda36..d2fe60d92 100644
--- a/cmake/CheckTrezor.cmake
+++ b/cmake/CheckTrezor.cmake
@@ -159,7 +159,7 @@ if(Protobuf_FOUND AND USE_DEVICE_TREZOR AND TREZOR_PYTHON AND Protobuf_COMPILE_T
 
         set(TREZOR_LIBUSB_LIBRARIES "")
         if(LibUSB_COMPILE_TEST_PASSED)
-            list(APPEND TREZOR_LIBUSB_LIBRARIES ${LibUSB_LIBRARIES})
+            list(APPEND TREZOR_LIBUSB_LIBRARIES ${LibUSB_LIBRARIES} ${LIBUSB_DEP_LINKER})
             message(STATUS "Trezor compatible LibUSB found at: ${LibUSB_INCLUDE_DIRS}")
         endif()
 
@@ -174,7 +174,7 @@ if(Protobuf_FOUND AND USE_DEVICE_TREZOR AND TREZOR_PYTHON AND Protobuf_COMPILE_T
 
             if (TREZOR_LIBUSB_LIBRARIES)
                 list(APPEND TREZOR_DEP_LIBS ${TREZOR_LIBUSB_LIBRARIES})
-                string(APPEND TREZOR_DEP_LINKER " -lusb-1.0")
+                string(APPEND TREZOR_DEP_LINKER " -lusb-1.0 ${LIBUSB_DEP_LINKER}")
             endif()
         endif()
     endif()
diff --git a/cmake/FindLibUSB.cmake b/cmake/FindLibUSB.cmake
index c7e09d4c0..79d8fba75 100644
--- a/cmake/FindLibUSB.cmake
+++ b/cmake/FindLibUSB.cmake
@@ -119,6 +119,12 @@ if ( LibUSB_FOUND )
                 find_library(IOKIT IOKit)
                 list(APPEND TEST_COMPILE_EXTRA_LIBRARIES ${IOKIT})
                 list(APPEND TEST_COMPILE_EXTRA_LIBRARIES ${COREFOUNDATION})
+
+                if(STATIC)
+                    find_library(OBJC objc.a)
+                    set(LIBUSB_DEP_LINKER ${OBJC})
+                    list(APPEND TEST_COMPILE_EXTRA_LIBRARIES ${LIBUSB_DEP_LINKER})
+                endif()
             endif()
         endif()
         if (WIN32)