|  | # Distributed under the OSI-approved BSD 3-Clause License.  See accompanying | 
|  | # file LICENSE.rst or https://cmake.org/licensing for details. | 
|  |  | 
|  | #[=======================================================================[.rst: | 
|  | FindLibinput | 
|  | ------------ | 
|  |  | 
|  | .. versionadded:: 3.14 | 
|  |  | 
|  | Finds the libinput library which handles input devices in Wayland compositors | 
|  | and provides a generic X.Org input driver. | 
|  |  | 
|  | Imported Targets | 
|  | ^^^^^^^^^^^^^^^^ | 
|  |  | 
|  | This module provides the following :ref:`Imported Targets`: | 
|  |  | 
|  | ``Libinput::Libinput`` | 
|  | Target encapsulating the libinput library usage requirements, available only | 
|  | if library is found. | 
|  |  | 
|  | Result Variables | 
|  | ^^^^^^^^^^^^^^^^ | 
|  |  | 
|  | This module defines the following variables: | 
|  |  | 
|  | ``Libinput_FOUND`` | 
|  | Boolean indicating whether the (requested version of) libinput library is | 
|  | found. | 
|  | ``Libinput_VERSION`` | 
|  | The version of the libinput found. | 
|  | ``Libinput_LIBRARIES`` | 
|  | The libraries to link against to use the libinput library. | 
|  | ``Libinput_INCLUDE_DIRS`` | 
|  | The include directories containing headers needed to use the libinput library. | 
|  | ``Libinput_COMPILE_OPTIONS`` | 
|  | Compile options needed to use the libinput library.  These can be passed to | 
|  | the :command:`target_compile_options` command, when not using the | 
|  | ``Libinput::Libinput`` imported target. | 
|  |  | 
|  | Examples | 
|  | ^^^^^^^^ | 
|  |  | 
|  | Finding the libinput library and linking it to a project target: | 
|  |  | 
|  | .. code-block:: cmake | 
|  |  | 
|  | find_package(Libinput) | 
|  | target_link_libraries(project_target PRIVATE Libinput::Libinput) | 
|  | #]=======================================================================] | 
|  |  | 
|  |  | 
|  | # Use pkg-config to get the directories and then use these values | 
|  | # in the FIND_PATH() and FIND_LIBRARY() calls | 
|  | find_package(PkgConfig QUIET) | 
|  | if(PKG_CONFIG_FOUND) | 
|  | pkg_check_modules(PKG_Libinput QUIET libinput) | 
|  | endif() | 
|  |  | 
|  | set(Libinput_COMPILE_OPTIONS ${PKG_Libinput_CFLAGS_OTHER}) | 
|  | set(Libinput_VERSION ${PKG_Libinput_VERSION}) | 
|  |  | 
|  | find_path(Libinput_INCLUDE_DIR | 
|  | NAMES | 
|  | libinput.h | 
|  | HINTS | 
|  | ${PKG_Libinput_INCLUDE_DIRS} | 
|  | ) | 
|  | find_library(Libinput_LIBRARY | 
|  | NAMES | 
|  | input | 
|  | HINTS | 
|  | ${PKG_Libinput_LIBRARY_DIRS} | 
|  | ) | 
|  |  | 
|  | include(FindPackageHandleStandardArgs) | 
|  | find_package_handle_standard_args(Libinput | 
|  | REQUIRED_VARS | 
|  | Libinput_LIBRARY | 
|  | Libinput_INCLUDE_DIR | 
|  | VERSION_VAR | 
|  | Libinput_VERSION | 
|  | ) | 
|  |  | 
|  | if(Libinput_FOUND AND NOT TARGET Libinput::Libinput) | 
|  | add_library(Libinput::Libinput UNKNOWN IMPORTED) | 
|  | set_target_properties(Libinput::Libinput PROPERTIES | 
|  | IMPORTED_LOCATION "${Libinput_LIBRARY}" | 
|  | INTERFACE_COMPILE_OPTIONS "${Libinput_COMPILE_OPTIONS}" | 
|  | INTERFACE_INCLUDE_DIRECTORIES "${Libinput_INCLUDE_DIR}" | 
|  | ) | 
|  | endif() | 
|  |  | 
|  | mark_as_advanced(Libinput_LIBRARY Libinput_INCLUDE_DIR) | 
|  |  | 
|  | if(Libinput_FOUND) | 
|  | set(Libinput_LIBRARIES ${Libinput_LIBRARY}) | 
|  | set(Libinput_INCLUDE_DIRS ${Libinput_INCLUDE_DIR}) | 
|  | endif() |