| cmake_minimum_required(VERSION 3.1.3...3.25 FATAL_ERROR) |
| project(hidtest C) |
| |
| if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) |
| # hidtest is build as a standalone project |
| |
| if(POLICY CMP0074) |
| # allow using hidapi_ROOT if CMake supports it |
| cmake_policy(SET CMP0074 NEW) |
| endif() |
| |
| find_package(hidapi 0.12 REQUIRED) |
| message(STATUS "Using HIDAPI: ${hidapi_VERSION}") |
| else() |
| # hidtest is built as part of the main HIDAPI build |
| message(STATUS "Building hidtest") |
| endif() |
| |
| set(HIDAPI_HIDTEST_TARGETS) |
| if(NOT WIN32 AND NOT APPLE AND CMAKE_SYSTEM_NAME MATCHES "Linux") |
| if(TARGET hidapi::hidraw) |
| add_executable(hidtest_hidraw test.c) |
| target_link_libraries(hidtest_hidraw hidapi::hidraw) |
| list(APPEND HIDAPI_HIDTEST_TARGETS hidtest_hidraw) |
| endif() |
| if(TARGET hidapi::libusb) |
| add_executable(hidtest_libusb test.c) |
| target_compile_definitions(hidtest_libusb PRIVATE USING_HIDAPI_LIBUSB) |
| target_link_libraries(hidtest_libusb hidapi::libusb) |
| list(APPEND HIDAPI_HIDTEST_TARGETS hidtest_libusb) |
| endif() |
| else() |
| add_executable(hidtest test.c) |
| target_link_libraries(hidtest hidapi::hidapi) |
| list(APPEND HIDAPI_HIDTEST_TARGETS hidtest) |
| endif() |
| |
| install(TARGETS ${HIDAPI_HIDTEST_TARGETS} |
| RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" |
| ) |