diff options
Diffstat (limited to 'find-modules/FindUDev.cmake')
-rw-r--r-- | find-modules/FindUDev.cmake | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/find-modules/FindUDev.cmake b/find-modules/FindUDev.cmake new file mode 100644 index 00000000..b7557415 --- /dev/null +++ b/find-modules/FindUDev.cmake @@ -0,0 +1,92 @@ +#.rst: +# FindUDev +# -------- +# +# Try to find the UDev library, once done this will define: +# +# ``UDev_FOUND`` +# System has UDev. +# +# ``UDev_INCLUDE_DIRS`` +# The libudev include directory. +# +# ``UDev_LIBRARIES`` +# The libudev libraries. +# +# ``UDev_VERSION`` +# The libudev version. +# +# If ``UDev_FOUND`` is TRUE, the following imported target +# will be available: +# +# ``UDev::UDev`` +# The UDev library +# +# Since 5.57.0. + +#============================================================================= +# Copyright (c) 2010, Rafael Fernández López, <ereslibre@kde.org> +# Copyright (c) 2019, Volker Krause, <vkrause@kde.org> +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the University nor the names of its contributors +# may be used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +#============================================================================= + +find_package(PkgConfig QUIET) +pkg_check_modules(PC_UDEV QUIET libudev) + +find_path(UDev_INCLUDE_DIRS NAMES libudev.h HINTS ${PC_UDEV_INCLUDE_DIRS}) +find_library(UDev_LIBRARIES NAMES udev HINTS ${PC_UDEV_LIBRARY_DIRS}) + +set(UDev_VERSION ${PC_UDEV_VERSION}) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(UDev + FOUND_VAR UDev_FOUND + REQUIRED_VARS UDev_INCLUDE_DIRS UDev_LIBRARIES + VERSION_VAR UDev_VERSION +) + +mark_as_advanced(UDev_INCLUDE_DIRS UDev_LIBRARIES) + +if(UDev_FOUND AND NOT TARGET UDev::UDev) + add_library(UDev::UDev UNKNOWN IMPORTED) + set_target_properties(UDev::UDev PROPERTIES + IMPORTED_LOCATION "${UDev_LIBRARIES}" + INTERFACE_INCLUDE_DIRECTORIES "${UDev_INCLUDE_DIRS}" + INTERFACE_COMPILE_DEFINITIONS "${PC_UDEV_CFLAGS_OTHER}" + ) +endif() + +# backward compat variables, remove for KF6 +set(UDEV_FOUND ${UDev_FOUND}) +set(UDEV_LIBS ${UDev_LIBRARIES}) +set(UDEV_INCLUDE_DIR ${UDev_INCLUDE_DIRS}) +mark_as_advanced(UDEV_FOUND UDEV_LIBS UDEV_INCLUDE_DIR) + +include(FeatureSummary) +set_package_properties(UDev PROPERTIES + DESCRIPTION "API for enumerating and introspecting local devices (part of systemd)" + URL "https://freedesktop.org/wiki/Software/systemd/" +) |