From 927a5f4d757e9eacb6f133ebd45b69db01e9e2f3 Mon Sep 17 00:00:00 2001 From: Ralf Habacker Date: Mon, 18 May 2020 12:47:51 +0200 Subject: cmake: add support for user session semantic on Linux operating systems Systemd user support is controlled by the cmake variable ENABLE_USER_SESSION, which and WITH_SYSTEMD_USERUNITDIR to specify a custom installation location. If WITH_SYSTEMD_USERUNITDIR is not specified, the related install path is determined from an installed systemd package, if present. This was added to the Autotools build system as part of fd.o#61301, but until now was not possible to enable when building with CMake. --- CMakeLists.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index 48cf9675..caef7384 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -151,7 +151,11 @@ if(DBUS_LINUX) set(DBUS_BUS_ENABLE_SYSTEMD ON) set(HAVE_SYSTEMD ${SYSTEMD_FOUND}) endif() + option(ENABLE_USER_SESSION "enable user-session semantics for session bus under systemd" OFF) + set(DBUS_ENABLE_USER_SESSION ${ENABLE_USER_SESSION}) + add_path_option(WITH_SYSTEMD_SYSTEMUNITDIR "Directory for systemd service files" "") + add_path_option(WITH_SYSTEMD_USERUNITDIR "Directory for systemd user service files" "") # get defaults pkg_check_modules(_SYSTEMD systemd) if(_SYSTEMD_FOUND) @@ -160,12 +164,17 @@ if(DBUS_LINUX) pkg_get_variable(_SYSTEMD_USERUNITDIR systemd systemduserunitdir) # remove install prefix, which may not match the current prefix string(REPLACE "${_SYSTEMD_PREFIX}/" "" DBUS_SYSTEMD_SYSTEMUNITDIR ${_SYSTEMD_SYSTEMUNITDIR}) + string(REPLACE "${_SYSTEMD_PREFIX}/" "" DBUS_SYSTEMD_USERUNITDIR ${_SYSTEMD_USERUNITDIR}) else() set(DBUS_SYSTEMD_SYSTEMUNITDIR lib/systemd/system) + set(DBUS_SYSTEMD_USERUNITDIR lib/systemd/user) endif() if(WITH_SYSTEMD_SYSTEMUNITDIR) set(DBUS_SYSTEMD_SYSTEMUNITDIR ${WITH_SYSTEMD_SYSTEMUNITDIR}) endif() + if(WITH_SYSTEMD_USERUNITDIR) + set(DBUS_SYSTEMD_USERUNITDIR ${WITH_SYSTEMD_USERUNITDIR}) + endif() endif() if(WIN32) @@ -644,6 +653,7 @@ message(" Building inotify support: ${DBUS_BUS_ENABLE_INOTIFY} " message(" Building kqueue support: ${DBUS_BUS_ENABLE_KQUEUE} ") message(" Building systemd support: ${DBUS_BUS_ENABLE_SYSTEMD} ") message(" systemd system install dir:${DBUS_SYSTEMD_SYSTEMUNITDIR} ") +message(" systemd user install dir: ${DBUS_SYSTEMD_USERUNITDIR} ") message(" Building Doxygen docs: ${DBUS_ENABLE_DOXYGEN_DOCS} ") message(" Building Qt help docs: ${DBUS_ENABLE_QTHELP_DOCS} ") message(" Building XML docs: ${DBUS_ENABLE_XML_DOCS} ") -- cgit v1.2.1