aboutsummaryrefslogtreecommitdiff
path: root/CMake/FindLibInput.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'CMake/FindLibInput.cmake')
-rw-r--r--CMake/FindLibInput.cmake72
1 files changed, 72 insertions, 0 deletions
diff --git a/CMake/FindLibInput.cmake b/CMake/FindLibInput.cmake
new file mode 100644
index 00000000..8e3b222b
--- /dev/null
+++ b/CMake/FindLibInput.cmake
@@ -0,0 +1,72 @@
+#.rst:
+# FindLibInput
+# -------
+#
+# Find LibInput library
+#
+# Try to find LibInpu library. The following values are defined
+#
+# ::
+#
+# LIBINPUT_FOUND - True if libinput is available
+# LIBINPUT_INCLUDE_DIRS - Include directories for libinput
+# LIBINPUT_LIBRARIES - List of libraries for libinput
+# LIBINPUT_DEFINITIONS - List of definitions for libinput
+#
+# and also the following more fine grained variables
+#
+# ::
+#
+# LIBINPUT_VERSION
+# LIBINPUT_VERSION_MAJOR
+# LIBINPUT_VERSION_MINOR
+# LIBINPUT_VERSION_MICRO
+#
+#=============================================================================
+# Copyright (c) 2015 Jari Vetoniemi
+#
+# Distributed under the OSI-approved BSD License (the "License");
+#
+# This software is distributed WITHOUT ANY WARRANTY; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the License for more information.
+#=============================================================================
+
+include(FeatureSummary)
+set_package_properties(LibInput PROPERTIES
+ URL "http://freedesktop.org/wiki/Software/libinput/"
+ DESCRIPTION "Library to handle input devices")
+
+find_package(PkgConfig)
+pkg_check_modules(PC_INPUT QUIET libinput)
+find_library(LIBINPUT_LIBRARIES NAMES input HINTS ${PC_INPUT_LIBRARY_DIRS})
+find_path(LIBINPUT_INCLUDE_DIRS libinput.h HINTS ${PC_INPUT_INCLUDE_DIRS})
+
+set(LIBINPUT_VERSION ${PC_INPUT_VERSION})
+string(REPLACE "." ";" VERSION_LIST "${PC_INPUT_VERSION}")
+
+LIST(LENGTH VERSION_LIST n)
+if (n EQUAL 3)
+ list(GET VERSION_LIST 0 LIBINPUT_VERSION_MAJOR)
+ list(GET VERSION_LIST 1 LIBINPUT_VERSION_MINOR)
+ list(GET VERSION_LIST 2 LIBINPUT_VERSION_MICRO)
+else ()
+ set(LIBINPUT_VERSION "9999.9999.9999")
+ set(LIBINPUT_VERSION_MAJOR 9999)
+ set(LIBINPUT_VERSION_MINOR 9999)
+ set(LIBINPUT_VERSION_MICRO 9999)
+ message(WARNING "Could not detect libinput version, assuming you have recent one")
+endif ()
+
+# This is compatible with libinput-version.h that exists in upstream
+# but isn't in distribution (probably forgotten)
+set(LIBINPUT_DEFINITIONS ${PC_INPUT_CFLAGS_OTHER}
+ -DLIBINPUT_VERSION=\"${LIBINPUT_VERSION}\"
+ -DLIBINPUT_VERSION_MAJOR=${LIBINPUT_VERSION_MAJOR}
+ -DLIBINPUT_VERSION_MINOR=${LIBINPUT_VERSION_MINOR}
+ -DLIBINPUT_VERSION_MICRO=${LIBINPUT_VERSION_MICRO})
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(LIBINPUT DEFAULT_MSG LIBINPUT_INCLUDE_DIRS LIBINPUT_LIBRARIES)
+mark_as_advanced(LIBINPUT_INCLUDE_DIRS LIBINPUT_LIBRARIES LIBINPUT_DEFINITIONS
+ LIBINPUT_VERSION LIBINPUT_VERSION_MAJOR LIBINPUT_VERSION_MICRO LIBINPUT_VERSION_MINOR)