summaryrefslogtreecommitdiffstats
path: root/cmake/modules/Findhidapi.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/modules/Findhidapi.cmake')
-rw-r--r--cmake/modules/Findhidapi.cmake87
1 files changed, 87 insertions, 0 deletions
diff --git a/cmake/modules/Findhidapi.cmake b/cmake/modules/Findhidapi.cmake
new file mode 100644
index 0000000000..8984767583
--- /dev/null
+++ b/cmake/modules/Findhidapi.cmake
@@ -0,0 +1,87 @@
+# This file is part of Mixxx, Digital DJ'ing software.
+# Copyright (C) 2001-2020 Mixxx Development Team
+# Distributed under the GNU General Public Licence (GPL) version 2 or any later
+# later version. See the LICENSE file for details.
+
+#[=======================================================================[.rst:
+Findhidapi
+----------
+
+Finds the hidapi library.
+
+Imported Targets
+^^^^^^^^^^^^^^^^
+
+This module provides the following imported targets, if found:
+
+``hidapi::libusb``
+ The hidapi-libusb library
+
+Result Variables
+^^^^^^^^^^^^^^^^
+
+This will define the following variables:
+
+``hidapi_FOUND``
+ True if the system has the hidapi library.
+``hidapi_INCLUDE_DIRS``
+ Include directories needed to use hidapi.
+``hidapi_LIBRARIES``
+ Libraries needed to link to hidapi.
+``hidapi_DEFINITIONS``
+ Compile definitions needed to use hidapi.
+
+Cache Variables
+^^^^^^^^^^^^^^^
+
+The following cache variables may also be set:
+
+``hidapi_INCLUDE_DIR``
+ The directory containing ``hidapi/hidapi.h``.
+``hidapi_LIBRARY``
+ The path to the hidapi-lbusb library.
+
+#]=======================================================================]
+
+find_package(PkgConfig QUIET)
+if(PkgConfig_FOUND)
+ pkg_check_modules(PC_hidapi QUIET hidapi-libusb)
+endif()
+
+find_path(hidapi_INCLUDE_DIR
+ NAMES hidapi.h
+ PATHS ${PC_hidapi_INCLUDE_DIRS}
+ PATH_SUFFIXES hidapi
+ DOC "hidapi include directory")
+mark_as_advanced(hidapi_INCLUDE_DIR)
+
+find_library(hidapi_LIBRARY
+ NAMES hidapi-libusb hidapi
+ PATHS ${PC_hidapi_LIBRARY_DIRS}
+ DOC "hidapi library"
+)
+mark_as_advanced(hidapi_LIBRARY)
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(
+ hidapi
+ DEFAULT_MSG
+ hidapi_LIBRARY
+ hidapi_INCLUDE_DIR
+)
+
+if(hidapi_FOUND)
+ set(hidapi_LIBRARIES "${hidapi_LIBRARY}")
+ set(hidapi_INCLUDE_DIRS "${hidapi_INCLUDE_DIR}")
+ set(hidapi_DEFINITIONS ${PC_hidapi_CFLAGS_OTHER})
+
+ if(NOT TARGET hidapi::hidapi)
+ add_library(hidapi::hidapi UNKNOWN IMPORTED)
+ set_target_properties(hidapi::hidapi
+ PROPERTIES
+ IMPORTED_LOCATION "${hidapi_LIBRARY}"
+ INTERFACE_COMPILE_OPTIONS "${PC_hidapi_CFLAGS_OTHER}"
+ INTERFACE_INCLUDE_DIRECTORIES "${hidapi_INCLUDE_DIR}"
+ )
+ endif()
+endif()