1# - try to find libusb-1 library
2#
3# Cache Variables: (probably not for direct use in your scripts)
4#  LIBUSB1_LIBRARY
5#  LIBUSB1_INCLUDE_DIR
6#
7# Non-cache variables you should use in your CMakeLists.txt:
8#  LIBUSB1_LIBRARIES
9#  LIBUSB1_INCLUDE_DIRS
10#  LIBUSB1_FOUND - if this is not true, do not attempt to use this library
11#
12# Requires these CMake modules:
13#  ProgramFilesGlob
14#  FindPackageHandleStandardArgs (known included with CMake >=2.6.2)
15#
16# Original Author:
17# 2009-2010 Ryan Pavlik <rpavlik@iastate.edu> <abiryan@ryand.net>
18# http://academic.cleardefinition.com
19# Iowa State University HCI Graduate Program/VRAC
20#
21# Copyright Iowa State University 2009-2010.
22# Distributed under the Boost Software License, Version 1.0.
23# (See accompanying file LICENSE_1_0.txt or copy at
24# http://www.boost.org/LICENSE_1_0.txt)
25
26
27set(LIBUSB1_ROOT_DIR
28	"${LIBUSB1_ROOT_DIR}"
29	CACHE
30	PATH
31	"Root directory to search for libusb-1")
32
33if(WIN32)
34	include(ProgramFilesGlob)
35	program_files_fallback_glob(_dirs "LibUSB-Win32")
36	if(CMAKE_SIZEOF_VOID_P EQUAL 8)
37		if(MSVC)
38			set(_lib_suffixes lib/msvc_x64)
39		endif()
40	else()
41		if(MSVC)
42			set(_lib_suffixes lib/msvc)
43		elseif(COMPILER_IS_GNUCXX)
44			set(_lib_suffixes lib/gcc)
45		endif()
46	endif()
47else()
48	set(_lib_suffixes)
49	find_package(PkgConfig QUIET)
50	if(PKG_CONFIG_FOUND)
51		pkg_check_modules(PC_LIBUSB1 libusb-1.0)
52	endif()
53endif()
54
55find_path(LIBUSB1_INCLUDE_DIR
56	NAMES
57	libusb.h
58	PATHS
59	${PC_LIBUSB1_INCLUDE_DIRS}
60	${PC_LIBUSB1_INCLUDEDIR}
61	${_dirs}
62	HINTS
63	"${LIBUSB1_ROOT_DIR}"
64	PATH_SUFFIXES
65	include
66	libusb-1.0)
67
68find_library(LIBUSB1_LIBRARY
69	NAMES
70	usb-1.0
71	PATHS
72	${PC_LIBUSB1_LIBRARY_DIRS}
73	${PC_LIBUSB1_LIBDIR}
74	${_dirs}
75	PATH_SUFFIXES
76	${_lib_suffixes})
77
78include(FindPackageHandleStandardArgs)
79find_package_handle_standard_args(Libusb1
80	DEFAULT_MSG
81	LIBUSB1_LIBRARY
82	LIBUSB1_INCLUDE_DIR)
83
84if(LIBUSB1_FOUND)
85	set(LIBUSB1_LIBRARIES "${LIBUSB1_LIBRARY}")
86
87	set(LIBUSB1_INCLUDE_DIRS "${LIBUSB1_INCLUDE_DIR}")
88
89	mark_as_advanced(LIBUSB1_ROOT_DIR)
90endif()
91
92mark_as_advanced(LIBUSB1_INCLUDE_DIR LIBUSB1_LIBRARY)
93