File: CMakeLists.txt

package info (click to toggle)
kshutdown 6.0-2
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 1,992 kB
  • sloc: cpp: 8,349; sh: 477; makefile: 5
file content (87 lines) | stat: -rw-r--r-- 1,974 bytes parent folder | download
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)