CMakeLists.txt 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. cmake_minimum_required(VERSION 3.4.3 FATAL_ERROR)
  2. list(APPEND HIDAPI_PUBLIC_HEADERS "hidapi_darwin.h")
  3. add_library(hidapi_darwin
  4. ${HIDAPI_PUBLIC_HEADERS}
  5. hid.c
  6. )
  7. find_package(Threads REQUIRED)
  8. target_link_libraries(hidapi_darwin
  9. PUBLIC hidapi_include
  10. PRIVATE Threads::Threads
  11. PRIVATE "-framework IOKit" "-framework CoreFoundation" "-framework AppKit"
  12. )
  13. set_target_properties(hidapi_darwin
  14. PROPERTIES
  15. EXPORT_NAME "darwin"
  16. OUTPUT_NAME "hidapi"
  17. VERSION ${PROJECT_VERSION}
  18. SOVERSION ${PROJECT_VERSION_MAJOR}
  19. MACHO_COMPATIBILITY_VERSION ${PROJECT_VERSION_MAJOR}
  20. FRAMEWORK_VERSION ${PROJECT_VERSION_MAJOR}
  21. PUBLIC_HEADER "${HIDAPI_PUBLIC_HEADERS}"
  22. )
  23. # compatibility with find_package()
  24. add_library(hidapi::darwin ALIAS hidapi_darwin)
  25. # compatibility with raw library link
  26. add_library(hidapi ALIAS hidapi_darwin)
  27. set(PUBLIC_HEADER_DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
  28. if(NOT CMAKE_FRAMEWORK)
  29. set(PUBLIC_HEADER_DESTINATION "${PUBLIC_HEADER_DESTINATION}/hidapi")
  30. endif()
  31. if(HIDAPI_INSTALL_TARGETS)
  32. install(TARGETS hidapi_darwin EXPORT hidapi
  33. LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
  34. ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
  35. FRAMEWORK DESTINATION "${CMAKE_INSTALL_LIBDIR}"
  36. PUBLIC_HEADER DESTINATION "${PUBLIC_HEADER_DESTINATION}"
  37. )
  38. endif()
  39. hidapi_configure_pc("${PROJECT_ROOT}/pc/hidapi.pc.in")