include(os.cmake) include(config.cmake) include(FindThreads) set (LIBUSB_COMMON core.c descriptor.c io.c sync.c hotplug.c strerror.c libusb-1.0.rc libusb-1.0.def ) foreach(SRC IN LISTS LIBUSB_COMMON) list(APPEND LIBUSB_COMMON_FINAL ${LIBUSB_SOURCE_DIR}/libusb/${SRC}) endforeach() include_directories(${LIBUSB_SOURCE_DIR}/libusb) include_directories(${LIBUSB_SOURCE_DIR}/libusb/os) if (CMAKE_THREAD_LIBS_INIT) list(APPEND LIBUSB_LIBRARIES ${CMAKE_THREAD_LIBS_INIT}) endif() add_library(usb-1.0-static STATIC ${LIBUSB_COMMON_FINAL} ${LIBUSB_PLATFORM} ) target_include_directories(usb-1.0-static PUBLIC $) set_target_properties(usb-1.0-static PROPERTIES PREFIX "lib" OUTPUT_NAME "usb-1.0" CLEAN_DIRECT_OUTPUT 1 PUBLIC_HEADER libusb.h VERSION "${LIBUSB_MAJOR}.${LIBUSB_MINOR}.${LIBUSB_MICRO}" SOVERSION "${LIBUSB_MAJOR}.${LIBUSB_MINOR}.${LIBUSB_MICRO}" ) if (DEFINED LIBUSB_LIBRARIES) target_link_libraries(usb-1.0-static ${LIBUSB_LIBRARIES} ) endif() list(APPEND LIBUSB_LIBTARGETS usb-1.0-static) install(TARGETS ${LIBUSB_LIBTARGETS} EXPORT libusb-1 PUBLIC_HEADER DESTINATION include/libusb-1.0 ARCHIVE DESTINATION lib LIBRARY DESTINATION lib RUNTIME DESTINATION lib ) install(EXPORT libusb-1 DESTINATION lib/libusb) foreach(LIB IN LISTS LIBUSB_LIBRARIES) if (LIB MATCHES .framework$) get_filename_component(LIB "${LIB}" NAME) set(LIB "-Wl,-framework,${LIB}") elseif (LIB MATCHES .dylib$) get_filename_component(LIBDIR "${LIB}" PATH) get_filename_component(LIB "${LIB}" NAME) string(REGEX REPLACE "lib(.*).dylib$" "\\1" LIB "${LIB}") set(LIB "-L${LIBDIR} -l${LIB}") endif() set(LIBUSB_LIB_DEPENDS "${LIBUSB_LIB_DEPENDS} ${LIB}") endforeach() configure_file(libusb-1.0.pc.cmake "${CMAKE_CURRENT_BINARY_DIR}/libusb-1.0.pc" @ONLY) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/libusb-1.0.pc" DESTINATION lib/pkgconfig)