BUILD: Refactor libusb submodule (#10169)
* relocate module files * fix cmake errors * moved & updated libusb MSVC build file
This commit is contained in:
Vendored
+76
@@ -0,0 +1,76 @@
|
||||
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 $<BUILD_INTERFACE:${LIBUSB_SOURCE_DIR}/libusb>)
|
||||
|
||||
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)
|
||||
Reference in New Issue
Block a user