The open source OpenXR runtime
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-2021 Rylie Pavlik <rylie@ryliepavlik.com>
18# https://ryliepavlik.com/
19#
20# Copyright 2009-2010, Iowa State University
21# Copyright 2021, Collabora, Ltd.
22#
23# SPDX-License-Identifier: BSL-1.0
24#
25# Distributed under the Boost Software License, Version 1.0.
26# (See accompanying file LICENSE_1_0.txt or copy at
27# http://www.boost.org/LICENSE_1_0.txt)
28
29
30set(LIBUSB1_ROOT_DIR
31 "${LIBUSB1_ROOT_DIR}"
32 CACHE
33 PATH
34 "Root directory to search for libusb-1")
35
36if(WIN32)
37 include(ProgramFilesGlob)
38 program_files_fallback_glob(_dirs "LibUSB-Win32")
39 if(CMAKE_SIZEOF_VOID_P EQUAL 8)
40 if(MSVC)
41 set(_lib_suffixes lib/msvc_x64 MS64/static)
42 endif()
43 else()
44 if(MSVC)
45 set(_lib_suffixes lib/msvc MS32/static)
46 elseif(COMPILER_IS_GNUCXX)
47 set(_lib_suffixes lib/gcc)
48 endif()
49 endif()
50else()
51 set(_lib_suffixes)
52 if(NOT ANDROID)
53 find_package(PkgConfig QUIET)
54 if(PKG_CONFIG_FOUND)
55 pkg_check_modules(PC_LIBUSB1 QUIET libusb-1.0)
56 endif()
57 endif()
58endif()
59
60find_path(LIBUSB1_INCLUDE_DIR
61 NAMES
62 libusb.h
63 PATHS
64 ${PC_LIBUSB1_INCLUDE_DIRS}
65 ${PC_LIBUSB1_INCLUDEDIR}
66 ${_dirs}
67 HINTS
68 "${LIBUSB1_ROOT_DIR}"
69 PATH_SUFFIXES
70 include/libusb-1.0
71 include
72 libusb-1.0)
73
74find_library(LIBUSB1_LIBRARY
75 NAMES
76 libusb-1.0
77 usb-1.0
78 PATHS
79 ${PC_LIBUSB1_LIBRARY_DIRS}
80 ${PC_LIBUSB1_LIBDIR}
81 ${_dirs}
82 HINTS
83 "${LIBUSB1_ROOT_DIR}"
84 PATH_SUFFIXES
85 ${_lib_suffixes})
86
87include(FindPackageHandleStandardArgs)
88find_package_handle_standard_args(Libusb1
89 DEFAULT_MSG
90 LIBUSB1_LIBRARY
91 LIBUSB1_INCLUDE_DIR)
92
93if(LIBUSB1_FOUND)
94 set(LIBUSB1_LIBRARIES "${LIBUSB1_LIBRARY}")
95
96 set(LIBUSB1_INCLUDE_DIRS "${LIBUSB1_INCLUDE_DIR}")
97
98 mark_as_advanced(LIBUSB1_ROOT_DIR)
99endif()
100
101mark_as_advanced(LIBUSB1_INCLUDE_DIR LIBUSB1_LIBRARY)