diff options
author | Julian Andres Klode <jak@debian.org> | 2017-09-09 20:36:04 +0200 |
---|---|---|
committer | Julian Andres Klode <jak@debian.org> | 2017-09-09 21:07:31 +0200 |
commit | 96b4580561cd2a8d1467143d67d2a612f0ddc75a (patch) | |
tree | f5b66586835dbf895ac63fa606f4303ffc135d7c /CMake | |
parent | 8d23827be3043daf7fed1b86da1d41578889eaeb (diff) | |
download | apt-96b4580561cd2a8d1467143d67d2a612f0ddc75a.tar.gz |
Directly link against libudev on Linux systems
We previously dlopen()ed it, but it seems painful to do that
without any real gain, except for possibly not having libudev
in the address space and not having code #ifdefed for Linux.
The latter means that we are a bit more likely to break stuff
for non-Linux systems now if we play with udev, but at least
we don't end up with it silently breaking because of a libudev
ABI break.
The existing function pointers in the struct were renamed and
kept for compat purposes.
Fixes Debian/apt#48
Also adjust prepare-release to strip [linux-any] from build-depends
for travis.
Diffstat (limited to 'CMake')
-rw-r--r-- | CMake/FindUdev.cmake | 25 | ||||
-rw-r--r-- | CMake/config.h.in | 3 |
2 files changed, 28 insertions, 0 deletions
diff --git a/CMake/FindUdev.cmake b/CMake/FindUdev.cmake new file mode 100644 index 000000000..e416c43da --- /dev/null +++ b/CMake/FindUdev.cmake @@ -0,0 +1,25 @@ +# - Try to find UDEV +# Once done, this will define +# +# UDEV_FOUND - system has UDEV +# UDEV_INCLUDE_DIRS - the UDEV include directories +# UDEV_LIBRARIES - the UDEV library +find_package(PkgConfig) + +pkg_check_modules(UDEV_PKGCONF libudev) + +find_path(UDEV_INCLUDE_DIRS + NAMES libudev.h + PATHS ${UDEV_PKGCONF_INCLUDE_DIRS} +) + + +find_library(UDEV_LIBRARIES + NAMES udev + PATHS ${UDEV_PKGCONF_LIBRARY_DIRS} +) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(Udev DEFAULT_MSG UDEV_INCLUDE_DIRS UDEV_LIBRARIES) + +mark_as_advanced(UDEV_INCLUDE_DIRS UDEV_LIBRARIES) diff --git a/CMake/config.h.in b/CMake/config.h.in index f5a03eedd..e1e4f83a1 100644 --- a/CMake/config.h.in +++ b/CMake/config.h.in @@ -17,6 +17,9 @@ /* Define if we have the lz4 library for lz4 */ #cmakedefine HAVE_LZ4 +/* Define if we have the udev library */ +#cmakedefine HAVE_UDEV + /* These two are used by the statvfs shim for glibc2.0 and bsd */ /* Define if we have sys/vfs.h */ #cmakedefine HAVE_VFS_H |