From 2360505a8f6475b6988efa60c3ba746bfbe4c4d0 Mon Sep 17 00:00:00 2001 From: Andreas Sturmlechner Date: Sun, 2 Feb 2020 18:29:57 +0100 Subject: [PATCH] libkworkspace: Allow standalone build --- libkworkspace/CMakeLists.txt | 67 +++++++++++++++++++++++++++++++++++- 1 file changed, 66 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 015c5181f..0aa635e11 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,3 +1,56 @@ +project(libkworkspace) + +if(${CMAKE_SOURCE_DIR} STREQUAL ${libkworkspace_SOURCE_DIR}) + set(PROJECT_VERSION "5.24.5") + set(PROJECT_VERSION_MAJOR 5) + + cmake_minimum_required(VERSION 3.16) + + set(QT_MIN_VERSION "5.15.0") + set(KF5_MIN_VERSION "5.82.0") + find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS Core DBus) + find_package(ECM ${KF5_MIN_VERSION} REQUIRED NO_MODULE) + set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR}) + + include(KDEInstallDirs) + include(KDECMakeSettings) + include(KDECompilerSettings NO_POLICY_SCOPE) + include(ECMMarkNonGuiExecutable) + include(CMakePackageConfigHelpers) + include(WriteBasicConfigVersionFile) + include(CheckIncludeFiles) + include(FeatureSummary) + include(ECMQtDeclareLoggingCategory) + include(KDEPackageAppTemplates) + include(ECMMarkAsTest) + include(GenerateExportHeader) + + find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS Config CoreAddons I18n Init WindowSystem) + + find_package(KWinDBusInterface CONFIG REQUIRED) + find_package(KScreenLocker 5.13.80 REQUIRED) + find_package(ScreenSaverDBusInterface CONFIG REQUIRED) + + find_package(X11) + set_package_properties(X11 PROPERTIES DESCRIPTION "X11 libraries" + URL "http://www.x.org" + TYPE OPTIONAL + PURPOSE "Required for X11 support") + + if(X11_FOUND) + find_package(Qt5X11Extras ${QT_MIN_VERSION} CONFIG REQUIRED) + set(HAVE_X11 1) + endif() + + if(BUILD_TESTING) + find_package(Qt5Test ${QT_MIN_VERSION} CONFIG REQUIRED) + endif() + + check_include_files(unistd.h HAVE_UNISTD_H) + + configure_file(../config-workspace.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-workspace.h) + configure_file(../config-X11.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-X11.h) +endif() set(kworkspace_LIB_SRCS kdisplaymanager.cpp kworkspace.cpp @@ -12,9 +65,17 @@ add_definitions(-DTRANSLATION_DOMAIN=\"libkworkspace\") qt_add_dbus_interface(kworkspace_LIB_SRCS ${KINIT_DBUS_INTERFACES_DIR}/kf5_org.kde.KLauncher.xml klauncher_interface) qt_add_dbus_interface(kworkspace_LIB_SRCS ${KSCREENLOCKER_DBUS_INTERFACES_DIR}/kf5_org.freedesktop.ScreenSaver.xml screenlocker_interface ) qt_add_dbus_interface(kworkspace_LIB_SRCS ${KSCREENLOCKER_DBUS_INTERFACES_DIR}/org.kde.screensaver.xml kscreenlocker_interface ) +if(${CMAKE_SOURCE_DIR} STREQUAL ${libkworkspace_SOURCE_DIR}) +qt_add_dbus_interface(kworkspace_LIB_SRCS ../ksmserver/org.kde.LogoutPrompt.xml logoutprompt_interface) +qt_add_dbus_interface(kworkspace_LIB_SRCS ../startkde/plasma-session/org.kde.Startup.xml startup_interface) +qt_add_dbus_interface(kworkspace_LIB_SRCS ../startkde/plasma-shutdown/org.kde.Shutdown.xml shutdown_interface) +set(ksmserver_xml ../ksmserver/org.kde.KSMServerInterface.xml) +else() qt_add_dbus_interface(kworkspace_LIB_SRCS ${plasma-workspace_SOURCE_DIR}/ksmserver/org.kde.LogoutPrompt.xml logoutprompt_interface) qt_add_dbus_interface(kworkspace_LIB_SRCS ${plasma-workspace_SOURCE_DIR}/startkde/plasma-session/org.kde.Startup.xml startup_interface) qt_add_dbus_interface(kworkspace_LIB_SRCS ${plasma-workspace_SOURCE_DIR}/startkde/plasma-shutdown/org.kde.Shutdown.xml shutdown_interface) +set(ksmserver_xml ${plasma-workspace_SOURCE_DIR}/ksmserver/org.kde.KSMServerInterface.xml) +endif() set_source_files_properties("${CMAKE_CURRENT_SOURCE_DIR}/org.freedesktop.login1.Manager.xml" "${CMAKE_SOURCE_DIR}/data/interfaces/org.freedesktop.login1.Seat.xml" @@ -30,7 +91,6 @@ list(APPEND kworkspace_LIB_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/login1_manager_inte qt_add_dbus_interface(kworkspace_LIB_SRCS "org.freedesktop.UPower.xml" upower_interface) qt_add_dbus_interface(kworkspace_LIB_SRCS "org.freedesktop.ConsoleKit.Manager.xml" consolekit_manager_interface) -set(ksmserver_xml ${plasma-workspace_SOURCE_DIR}/ksmserver/org.kde.KSMServerInterface.xml) qt_add_dbus_interface( kworkspace_LIB_SRCS ${ksmserver_xml} ksmserver_interface ) add_library(kworkspace ${kworkspace_LIB_SRCS}) @@ -98,3 +158,8 @@ if(BUILD_TESTING) add_subdirectory(autotests) add_subdirectory(tests) endif() + +if ("${CMAKE_BINARY_DIR}" STREQUAL "${CMAKE_CURRENT_BINARY_DIR}") + install( FILES sessionmanagementbackend.h DESTINATION ${KDE_INSTALL_INCLUDEDIR}/kworkspace5 COMPONENT Devel ) + feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) +endif() -- 2.31.1