diff --git a/attic/modules/FindUDev.cmake b/attic/modules/FindUDev.cmake deleted file mode 100644 --- a/attic/modules/FindUDev.cmake +++ /dev/null @@ -1,19 +0,0 @@ -# - Try to find UDev -# Once done this will define -# -# UDEV_FOUND - system has UDev -# UDEV_INCLUDE_DIR - the libudev include directory -# UDEV_LIBS - The libudev libraries - -# Copyright (c) 2010, Rafael Fernández López, -# -# Redistribution and use is allowed according to the terms of the BSD license. -# For details see the accompanying COPYING-CMAKE-SCRIPTS file. - -find_path(UDEV_INCLUDE_DIR libudev.h) -find_library(UDEV_LIBS udev) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(UDev DEFAULT_MSG UDEV_INCLUDE_DIR UDEV_LIBS) - -mark_as_advanced(UDEV_INCLUDE_DIR UDEV_LIBS) diff --git a/docs/find-module/FindUDev.rst b/docs/find-module/FindUDev.rst new file mode 100644 --- /dev/null +++ b/docs/find-module/FindUDev.rst @@ -0,0 +1 @@ +.. ecm-module:: ../../find-modules/FindUDev.cmake diff --git a/find-modules/FindUDev.cmake b/find-modules/FindUDev.cmake new file mode 100644 --- /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, +# Copyright (c) 2019, Volker Krause, +# +# 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/" +)