Submitted upstream: https://github.com/Kistler-Group/sdbus-cpp/pull/352 From 8423c44b6c24ebd59db06ad33704265aa81a1c7a Mon Sep 17 00:00:00 2001 From: Sven Eden Date: Thu, 17 Aug 2023 23:16:19 -0400 Subject: [PATCH] build: Add support for elogind. * CMakeLists.txt: Fallback to elogind when libsystemd could not be found. Set LIBSYSTEMD variable. * pkgconfig/sdbus-c++.pc.in (Description): Parameterize with above LIBSYSTEMD variable. Signed-off-by: Maxim Cournoyer --- CMakeLists.txt | 11 +++++++++++ pkgconfig/sdbus-c++.pc.in | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 94f71c7..40c15f8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,11 +12,22 @@ include(GNUInstallDirs) # Installation directories for `install` command and pkg # PERFORMING CHECKS & PREPARING THE DEPENDENCIES #------------------------------- +set(LIBSYSTEMD "libsystemd") + option(BUILD_LIBSYSTEMD "Build libsystemd static library and incorporate it into libsdbus-c++" OFF) if(NOT BUILD_LIBSYSTEMD) find_package(PkgConfig REQUIRED) pkg_check_modules(Systemd IMPORTED_TARGET GLOBAL libsystemd>=236) + if(NOT TARGET PkgConfig::Systemd) + message(WARNING "libsystemd not found, checking for libelogind instead") + pkg_check_modules(Systemd IMPORTED_TARGET GLOBAL libelogind>=236) + if(TARGET PkgConfig::Systemd) + set(LIBSYSTEMD "libelogind") + string(REPLACE "." ";" VERSION_LIST ${Systemd_VERSION}) + list(GET VERSION_LIST 0 Systemd_VERSION) + endif() + endif() if(NOT TARGET PkgConfig::Systemd) message(FATAL_ERROR "libsystemd of version at least 236 is required, but was not found " "(if you have systemd in your OS, you may want to install package containing pkgconfig " diff --git a/pkgconfig/sdbus-c++.pc.in b/pkgconfig/sdbus-c++.pc.in index 6ad010a..0703476 100644 --- a/pkgconfig/sdbus-c++.pc.in +++ b/pkgconfig/sdbus-c++.pc.in @@ -5,7 +5,7 @@ includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ Name: @PROJECT_NAME@ Description: C++ library on top of sd-bus, a systemd D-Bus library -Requires@PKGCONFIG_REQS@: libsystemd +Requires@PKGCONFIG_REQS@: @LIBSYSTEMD@ Version: @SDBUSCPP_VERSION@ Libs: -L${libdir} -l@PROJECT_NAME@ Cflags: -I${includedir} base-commit: 3e84b254e9603935cb5fc180c4d2214d7024ccbb -- 2.41.0