add_library(LibUSB STATIC "${CMAKE_CURRENT_SOURCE_DIR}/src/libusb/core.c" "${CMAKE_CURRENT_SOURCE_DIR}/src/libusb/descriptor.c" "${CMAKE_CURRENT_SOURCE_DIR}/src/libusb/hotplug.c" "${CMAKE_CURRENT_SOURCE_DIR}/src/libusb/io.c" "${CMAKE_CURRENT_SOURCE_DIR}/src/libusb/strerror.c" "${CMAKE_CURRENT_SOURCE_DIR}/src/libusb/sync.c") target_include_directories(LibUSB PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src/libusb) target_include_directories(LibUSB PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src/libusb/os) add_library(LibUSB::LibUSB ALIAS LibUSB) if ("${CMAKE_C_COMPILER_ID}" STREQUAL "Clang") target_compile_options(LibUSB PUBLIC "-Wno-zero-length-array") endif() if ("${CMAKE_SYSTEM_NAME}" STREQUAL "Windows") target_sources(LibUSB PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/src/libusb/os/poll_windows.c" "${CMAKE_CURRENT_SOURCE_DIR}/src/libusb/os/threads_windows.c" "${CMAKE_CURRENT_SOURCE_DIR}/src/libusb/os/windows_nt_common.c" "${CMAKE_CURRENT_SOURCE_DIR}/src/libusb/os/windows_usbdk.c" "${CMAKE_CURRENT_SOURCE_DIR}/src/libusb/os/windows_winusb.c") target_include_directories(LibUSB PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src/msvc) target_compile_definitions(LibUSB PRIVATE "_LIB" "_CRT_SECURE_NO_WARNINGS" "WINVER=0x0501" "_WIN32_WINNT=0x0501") target_compile_options(LibUSB PRIVATE "/source-charset:utf-8") elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") target_sources(LibUSB PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/src/libusb/os/poll_posix.c" "${CMAKE_CURRENT_SOURCE_DIR}/src/libusb/os/threads_posix.c" "${CMAKE_CURRENT_SOURCE_DIR}/src/libusb/os/linux_usbfs.c" "${CMAKE_CURRENT_SOURCE_DIR}/src/libusb/os/linux_udev.c") target_include_directories(LibUSB PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/) target_link_libraries(LibUSB PUBLIC "udev") else() message(FATAL_ERROR "Unknown CMAKE_SYSTEM_NAME: ${CMAKE_SYSTEM_NAME}") endif()