cmake: Search for static libusb-1.0 library on OSX and link with ObjC,CoreFoundation...
authorJerry Jacobs <jerry.jacobs@xor-gate.org>
Fri, 20 May 2016 18:36:41 +0000 (20:36 +0200)
committerJerry Jacobs <jerry.jacobs@xor-gate.org>
Fri, 20 May 2016 18:36:41 +0000 (20:36 +0200)
CMakeLists.txt
cmake/modules/FindLibUSB.cmake

index dab482939a8c3fdb10a37de4c379827038ce6255..efadb5c7fdd6717082e7f9b0d25713a951252c69 100644 (file)
@@ -73,7 +73,14 @@ include_directories(src/mingw)
 add_library(${PROJECT_NAME} STATIC
             ${STLINK_HEADERS} # header files for ide projects generated by cmake
             ${STLINK_SOURCE})
-target_link_libraries(${PROJECT_NAME} ${LIBUSB_LIBRARIES})
+target_link_libraries(${PROJECT_NAME} ${LIBUSB_LIBRARY})
+
+if (APPLE)
+       find_library(ObjC objc)
+       find_library(CoreFoundation CoreFoundation)
+       find_library(IOKit IOKit)
+       target_link_libraries(${PROJECT_NAME} ${CoreFoundation} ${IOKit} ${ObjC})
+endif()
 
 add_executable(st-flash src/tools/flash.c)
 target_link_libraries(st-flash ${PROJECT_NAME})
index 2e518a7a6dd31058f77361279db6954f281dfd54..7f14ca125c2a9777a57f1234ac33b28182a55ad3 100644 (file)
@@ -1,27 +1,33 @@
-# FindLibUSB.cmake - Try to find the Hiredis library\r
-# Once done this will define\r
-#\r
-#  LIBUSB_FOUND - System has libusb\r
-#  LIBUSB_INCLUDE_DIR - The libusb include directory\r
-#  LIBUSB_LIBRARIES - The libraries needed to use libusb\r
-#  LIBUSB_DEFINITIONS - Compiler switches required for using libusb\r
-\r
-FIND_PATH(LIBUSB_INCLUDE_DIR NAMES libusb.h\r
-   HINTS\r
-   /usr\r
-   /usr/local\r
-   /opt\r
-   PATH_SUFFIXES libusb-1.0\r
-   )\r
-\r
-FIND_LIBRARY(LIBUSB_LIBRARIES NAMES usb-1.0\r
-   HINTS\r
-   /usr\r
-   /usr/local\r
-   /opt\r
-   )\r
-\r
-INCLUDE(FindPackageHandleStandardArgs)\r
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(Libusb DEFAULT_MSG LIBUSB_LIBRARIES LIBUSB_INCLUDE_DIR)\r
-\r
-MARK_AS_ADVANCED(LIBUSB_INCLUDE_DIR LIBUSB_LIBRARIES)\r
+# FindLibUSB.cmake - Try to find the Hiredis library
+# Once done this will define
+#
+#  LIBUSB_FOUND - System has libusb
+#  LIBUSB_INCLUDE_DIR - The libusb include directory
+#  LIBUSB_LIBRARY - The libraries needed to use libusb
+#  LIBUSB_DEFINITIONS - Compiler switches required for using libusb
+
+FIND_PATH(LIBUSB_INCLUDE_DIR NAMES libusb.h
+   HINTS
+   /usr
+   /usr/local
+   /opt
+   PATH_SUFFIXES libusb-1.0
+   )
+
+if (APPLE)
+       set(LIBUSB_NAME libusb-1.0.a)
+else()
+       set(LIBUSB_NAME usb-1.0)
+endif()
+
+FIND_LIBRARY(LIBUSB_LIBRARY NAMES ${LIBUSB_NAME}
+       HINTS
+       /usr
+       /usr/local
+       /opt
+)
+
+INCLUDE(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(Libusb DEFAULT_MSG LIBUSB_LIBRARY LIBUSB_INCLUDE_DIR)
+
+MARK_AS_ADVANCED(LIBUSB_INCLUDE_DIR LIBUSB_LIBRARY)