project(hidapi)

add_library(hidapi STATIC hidapi/hidapi.h)
target_include_directories(hidapi PUBLIC hidapi)

if(APPLE)
  target_sources(hidapi PRIVATE mac/hid.c)
elseif(MSVC)
  target_sources(hidapi PRIVATE windows/hid.c)
else()
  find_package(Libudev)
  if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND LIBUDEV_FOUND)
    target_sources(hidapi PRIVATE linux/hid.c)
    target_link_libraries(hidapi PRIVATE udev)
  else()
    target_sources(hidapi PRIVATE libusb/hid.c)
    target_link_libraries(hidapi PRIVATE ${LIBUSB_LIBRARIES})
  endif()
endif()

add_library(Hidapi::Hidapi ALIAS hidapi)