SFML/cmake/Modules/FindUDev.cmake
Chris Thrasher f0e72be285 Prefer using IMPORTED targets where possible
My goal is to reduce our need on sfml_find_package until it can
finally be removed. It's preferred to simply use find_package to
find 3rd party projects.

I had to add IMPORTED targets to some of our find modules so that
we could get away from using INTERFACE libraries for external code.
That also implied that our find moduels need to be installed so that
users have access to them when processing SFML's config module.
2023-08-23 09:14:59 -06:00

62 lines
2.0 KiB
CMake

# Configure libudev environment
#
# UDEV_FOUND - system has a libudev
# UDEV_INCLUDE_DIR - where to find header files
# UDEV_LIBRARIES - the libraries to link against udev
# UDEV_STABLE - it's true when is the version greater or equals to 143 - version when the libudev was stabilized in its API
#
# copyright (c) 2011 Petr Vanek <petr@scribus.info>
# Redistribution and use of this file is allowed according to the terms of the BSD license.
#
find_path(
UDEV_INCLUDE_DIR
libudev.h
/usr/include
/usr/local/include
${UDEV_PATH_INCLUDES}
)
find_library(
UDEV_LIBRARIES
NAMES udev libudev
PATHS ${ADDITIONAL_LIBRARY_PATHS}
${UDEV_PATH_LIB}
)
if(UDEV_LIBRARIES AND UDEV_INCLUDE_DIR)
set(UDEV_FOUND "YES")
execute_process(COMMAND pkg-config --atleast-version=143 libudev RESULT_VARIABLE UDEV_STABLE)
# retvale is 0 of the condition is "true" so we need to negate the value...
if(UDEV_STABLE)
set(UDEV_STABLE 0)
else()
set(UDEV_STABLE 1)
endif()
message(STATUS "libudev stable: ${UDEV_STABLE}")
endif()
if(UDEV_FOUND)
message(STATUS "Found UDev: ${UDEV_LIBRARIES}")
message(STATUS " include: ${UDEV_INCLUDE_DIR}")
else()
message(STATUS "UDev not found.")
message(STATUS "UDev: You can specify includes: -DUDEV_PATH_INCLUDES=/opt/udev/include")
message(STATUS " currently found includes: ${UDEV_INCLUDE_DIR}")
message(STATUS "UDev: You can specify libs: -DUDEV_PATH_LIB=/opt/udev/lib")
message(STATUS " currently found libs: ${UDEV_LIBRARIES}")
if(UDev_FIND_REQUIRED)
message(FATAL_ERROR "Could not find UDev library")
endif()
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(UDev DEFAULT_MSG UDEV_INCLUDE_DIR UDEV_LIBRARIES)
mark_as_advanced(UDEV_INCLUDE_DIR UDEV_LIBRARIES)
add_library(UDev::UDev IMPORTED UNKNOWN)
set_target_properties(UDev::UDev PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES ${UDEV_INCLUDE_DIR}
IMPORTED_LOCATION ${UDEV_LIBRARIES})