build: Add libudev on Linux

This commit is contained in:
Jakob Bornecrantz 2019-04-30 17:56:19 +01:00
parent 1436dcaea8
commit ade0594914
2 changed files with 85 additions and 0 deletions

View file

@ -37,9 +37,13 @@ pkg_check_modules(FFMPEG libavcodec)
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
# Compositor backend
find_package(X11)
find_package(Wayland)
pkg_check_modules(XCB xcb xcb-randr)
find_package(udev REQUIRED)
set(BUILD_WITH_LIBUDEV TRUE)
endif()
cmake_dependent_option(BUILD_WITH_WAYLAND "Enable Wayland support" ON "WAYLAND_FOUND" OFF)
@ -67,6 +71,10 @@ endif()
# Flags
###
if(BUILD_WITH_LIBUDEV)
add_definitions(-DXRT_HAVE_LIBUDEV)
endif()
if(BUILD_WITH_LIBUSB)
add_definitions(-DXRT_HAVE_LIBUSB)
endif()

77
cmake/Findudev.cmake Normal file
View file

@ -0,0 +1,77 @@
# - try to find the udev library
#
# Cache Variables: (probably not for direct use in your scripts)
# UDEV_INCLUDE_DIR
# UDEV_SOURCE_DIR
# UDEV_LIBRARY
#
# Non-cache variables you might use in your CMakeLists.txt:
# UDEV_FOUND
# UDEV_INCLUDE_DIRS
# UDEV_LIBRARIES
#
# Requires these CMake modules:
# FindPackageHandleStandardArgs (known included with CMake >=2.6.2)
#
# Original Author:
# 2014 Kevin M. Godby <kevin@godby.org>
#
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)
set(UDEV_ROOT_DIR
"${UDEV_ROOT_DIR}"
CACHE
PATH
"Directory to search for udev")
find_package(PkgConfig QUIET)
if(PKG_CONFIG_FOUND)
pkg_check_modules(PC_LIBUDEV libudev)
endif()
find_library(UDEV_LIBRARY
NAMES
udev
PATHS
${PC_LIBUDEV_LIBRARY_DIRS}
${PC_LIBUDEV_LIBDIR}
HINTS
"${UDEV_ROOT_DIR}"
PATH_SUFFIXES
lib
)
get_filename_component(_libdir "${UDEV_LIBRARY}" PATH)
find_path(UDEV_INCLUDE_DIR
NAMES
libudev.h
PATHS
${PC_LIBUDEV_INCLUDE_DIRS}
${PC_LIBUDEV_INCLUDEDIR}
HINTS
"${_libdir}"
"${_libdir}/.."
"${UDEV_ROOT_DIR}"
PATH_SUFFIXES
include
)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(UDEV
DEFAULT_MSG
UDEV_LIBRARY
UDEV_INCLUDE_DIR
)
if(UDEV_FOUND)
list(APPEND UDEV_LIBRARIES ${UDEV_LIBRARY})
list(APPEND UDEV_INCLUDE_DIRS ${UDEV_INCLUDE_DIR})
mark_as_advanced(UDEV_ROOT_DIR)
endif()
mark_as_advanced(UDEV_INCLUDE_DIR
UDEV_LIBRARY)