1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
|
cmake_minimum_required(VERSION 3.16)
project(kshutdown)
set(CMAKE_CXX_STANDARD 17) # adds -std=gnu++17 option
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
add_compile_definitions(QT_DISABLE_DEPRECATED_BEFORE=0x050F00)
add_definitions(-Wextra -Wpedantic -Wswitch-enum)
if (KS_FORCE_KF5)
message(STATUS "Forcing KF5 and Qt 5.x")
else()
find_package(Qt6 COMPONENTS Widgets DBus)
endif()
if (Qt6_FOUND)
message(STATUS "Qt 6.x found")
else()
message(STATUS "Qt 6.x NOT found. Trying Qt 5.x instead")
find_package(Qt5 5.15 REQUIRED COMPONENTS Widgets DBus)
endif()
if(KS_PURE_QT)
add_definitions(-DKS_PURE_QT)
set(DATA_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/share)
set(ICON_INSTALL_DIR ${DATA_INSTALL_DIR}/icons)
set(XDG_APPS_INSTALL_DIR ${DATA_INSTALL_DIR}/applications)
# TODO: https://cmake.org/Wiki/CMake_FAQ#Can_I_do_.22make_uninstall.22_with_CMake.3F
else()
add_definitions(-DKS_KF5)
find_package(ECM REQUIRED NO_MODULE)
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
include(KDEInstallDirs)
include(KDECompilerSettings)
# TODO: include(KDEFrameworkCompilerSettings) (?)
include(KDECMakeSettings)
if (Qt6_FOUND)
# NOTE: for compatibility with KF5 (used in {po,src}/CMakeLists.txt)
set(ICON_INSTALL_DIR ${KDE_INSTALL_FULL_ICONDIR})
set(LOCALE_INSTALL_DIR ${KDE_INSTALL_FULL_LOCALEDIR})
set(KNOTIFYRC_INSTALL_DIR ${KDE_INSTALL_FULL_KNOTIFYRCDIR})
set(XDG_APPS_INSTALL_DIR ${KDE_INSTALL_FULL_APPDIR})
find_package(KF6 REQUIRED COMPONENTS
Config
ConfigWidgets
CoreAddons
Crash
DBusAddons
GlobalAccel
I18n
IdleTime
Notifications
NotifyConfig
StatusNotifierItem
XmlGui
)
endif()
if (Qt5_FOUND)
find_package(KF5 REQUIRED COMPONENTS
Config
ConfigWidgets
Crash
DBusAddons
GlobalAccel
I18n
IdleTime
Notifications
NotifyConfig
XmlGui
)
endif()
add_subdirectory(po)
endif()
include(FeatureSummary)
feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
add_subdirectory(src)
|