74 lines
1.6 KiB
CMake
74 lines
1.6 KiB
CMake
|
|
#.rst:
|
||
|
|
# Findlibusb
|
||
|
|
# --------
|
||
|
|
#
|
||
|
|
# Try to find libusb library and headers.
|
||
|
|
#
|
||
|
|
# IMPORTED Targets
|
||
|
|
# ^^^^^^^^^^^^^^^^
|
||
|
|
#
|
||
|
|
# This module defines the :prop_tgt:`IMPORTED` targets:
|
||
|
|
#
|
||
|
|
# ``libusb::libusb``
|
||
|
|
# Defined if the system has libusb.
|
||
|
|
#
|
||
|
|
# Result Variables
|
||
|
|
# ^^^^^^^^^^^^^^^^
|
||
|
|
#
|
||
|
|
# This module sets the following variables:
|
||
|
|
#
|
||
|
|
# ::
|
||
|
|
#
|
||
|
|
# LIBUSB_FOUND True in case libusb is found, otherwise false
|
||
|
|
# LIBUSB_ROOT Path to the root of found libusb installation
|
||
|
|
#
|
||
|
|
# Example usage
|
||
|
|
# ^^^^^^^^^^^^^
|
||
|
|
#
|
||
|
|
# ::
|
||
|
|
#
|
||
|
|
# find_package(libusb REQUIRED)
|
||
|
|
#
|
||
|
|
# add_executable(foo foo.cc)
|
||
|
|
# target_link_libraries(foo libusb::libusb)
|
||
|
|
#
|
||
|
|
|
||
|
|
# Early return if libusb target is already defined. This makes it safe to run
|
||
|
|
# this script multiple times.
|
||
|
|
if(TARGET libusb::libusb)
|
||
|
|
return()
|
||
|
|
endif()
|
||
|
|
|
||
|
|
find_package(PkgConfig QUIET)
|
||
|
|
if(libusb_FIND_VERSION)
|
||
|
|
pkg_check_modules(PC_libusb libusb-1.0>=${libusb_FIND_VERSION})
|
||
|
|
else()
|
||
|
|
pkg_check_modules(PC_libusb libusb-1.0)
|
||
|
|
endif()
|
||
|
|
|
||
|
|
find_path(libusb_INCLUDE_DIR
|
||
|
|
NAMES
|
||
|
|
libusb-1.0/libusb.h
|
||
|
|
PATHS
|
||
|
|
${PC_libusb_INCLUDEDIR}
|
||
|
|
)
|
||
|
|
|
||
|
|
find_library(libusb_LIBRARIES
|
||
|
|
NAMES
|
||
|
|
usb-1.0
|
||
|
|
libusb
|
||
|
|
PATHS
|
||
|
|
${PC_libusb_LIBRARY_DIRS}
|
||
|
|
)
|
||
|
|
|
||
|
|
include(FindPackageHandleStandardArgs)
|
||
|
|
find_package_handle_standard_args(libusb DEFAULT_MSG libusb_LIBRARIES libusb_INCLUDE_DIR)
|
||
|
|
|
||
|
|
mark_as_advanced(libusb_INCLUDE_DIRS libusb_LIBRARIES)
|
||
|
|
|
||
|
|
if(LIBUSB_FOUND)
|
||
|
|
add_library(libusb::libusb UNKNOWN IMPORTED)
|
||
|
|
set_target_properties(libusb::libusb PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${libusb_INCLUDE_DIR}")
|
||
|
|
set_target_properties(libusb::libusb PROPERTIES IMPORTED_LOCATION "${libusb_LIBRARIES}")
|
||
|
|
endif()
|