FindLibUSB.cmake 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. if(NOT LIBUSB_FOUND)
  2. pkg_check_modules (LIBUSB_PKG libusb-1.0)
  3. find_path(LIBUSB_INCLUDE_DIR NAMES libusb.h
  4. PATHS
  5. ${LIBUSB_PKG_INCLUDE_DIRS}
  6. /usr/include/libusb-1.0
  7. /usr/include
  8. /usr/local/include
  9. )
  10. #standard library name for libusb-1.0
  11. set(libusb1_library_names usb-1.0)
  12. #libusb-1.0 compatible library on freebsd
  13. if((CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") OR (CMAKE_SYSTEM_NAME STREQUAL "kFreeBSD"))
  14. list(APPEND libusb1_library_names usb)
  15. endif()
  16. find_library(LIBUSB_LIBRARIES
  17. NAMES ${libusb1_library_names}
  18. PATHS
  19. ${LIBUSB_PKG_LIBRARY_DIRS}
  20. /usr/lib
  21. /usr/local/lib
  22. )
  23. include(CheckFunctionExists)
  24. if(LIBUSB_INCLUDE_DIRS)
  25. set(CMAKE_REQUIRED_INCLUDES ${LIBUSB_INCLUDE_DIRS})
  26. endif()
  27. if(LIBUSB_LIBRARIES)
  28. set(CMAKE_REQUIRED_LIBRARIES ${LIBUSB_LIBRARIES})
  29. endif()
  30. CHECK_FUNCTION_EXISTS("libusb_handle_events_timeout_completed" HAVE_LIBUSB_HANDLE_EVENTS_TIMEOUT_COMPLETED)
  31. if(HAVE_LIBUSB_HANDLE_EVENTS_TIMEOUT_COMPLETED)
  32. add_definitions(-DHAVE_LIBUSB_HANDLE_EVENTS_TIMEOUT_COMPLETED=1)
  33. endif(HAVE_LIBUSB_HANDLE_EVENTS_TIMEOUT_COMPLETED)
  34. CHECK_FUNCTION_EXISTS("libusb_error_name" HAVE_LIBUSB_ERROR_NAME)
  35. if(HAVE_LIBUSB_ERROR_NAME)
  36. add_definitions(-DHAVE_LIBUSB_ERROR_NAME=1)
  37. endif(HAVE_LIBUSB_ERROR_NAME)
  38. if(LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES)
  39. set(LIBUSB_FOUND TRUE CACHE INTERNAL "libusb-1.0 found")
  40. message(STATUS "Found libusb-1.0: ${LIBUSB_INCLUDE_DIR}, ${LIBUSB_LIBRARIES}")
  41. else(LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES)
  42. set(LIBUSB_FOUND FALSE CACHE INTERNAL "libusb-1.0 found")
  43. message(STATUS "libusb-1.0 not found.")
  44. endif(LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES)
  45. mark_as_advanced(LIBUSB_INCLUDE_DIR LIBUSB_LIBRARIES)
  46. endif(NOT LIBUSB_FOUND)