-
-
Notifications
You must be signed in to change notification settings - Fork 23
/
CMakeLists.txt
151 lines (125 loc) · 3.83 KB
/
CMakeLists.txt
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
cmake_minimum_required(VERSION 3.16)
project(kdeplasma-addons)
set(PROJECT_VERSION "6.2.80")
set(PROJECT_VERSION_MAJOR 6)
################# Disallow in-source build #################
if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
message(FATAL_ERROR "plasma requires an out of source build. Please create a separate build directory and run 'cmake path_to_plasma [options]' there.")
endif()
set(PROJECT_DEP_VERSION "6.2.0")
set(QT_MIN_VERSION "6.7.0")
set(KF6_MIN_VERSION "6.5.0")
set(KDE_COMPILERSETTINGS_LEVEL "5.82")
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
include(FeatureSummary)
find_package(ECM ${KF6_MIN_VERSION} REQUIRED NO_MODULE)
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
include(KDEInstallDirs)
include(KDECMakeSettings)
include(KDECompilerSettings NO_POLICY_SCOPE)
include(ECMQtDeclareLoggingCategory)
include(ECMGenerateExportHeader)
include(ECMInstallIcons)
include(KDEPackageAppTemplates)
include(GenerateExportHeader)
include(CMakePackageConfigHelpers)
include(KDEClangFormat)
include(KDEGitCommitHooks)
include(ECMDeprecationSettings)
include(ECMQmlModule)
find_package(Qt6 ${QT_MIN_VERSION} CONFIG REQUIRED
Core
Gui
DBus
Network
Quick
Qml
Widgets
Test
Core5Compat
)
find_package(KF6 ${KF6_MIN_VERSION} REQUIRED COMPONENTS
Config
CoreAddons
DBusAddons
Declarative
GlobalAccel
Holidays
I18n
Auth
KIO
KCMUtils
Notifications
Runner
Service
Sonnet
UnitConversion
XmlGui
NewStuff
JobWidgets
)
find_package(Plasma5Support ${PROJECT_DEP_VERSION} REQUIRED)
find_package(Plasma ${PROJECT_DEP_VERSION} REQUIRED)
find_package(PlasmaQuick ${PROJECT_DEP_VERSION} REQUIRED)
find_package(KF6Purpose CONFIG QUIET)
set_package_properties(KF6Purpose PROPERTIES
DESCRIPTION "Framework for cross-application services and actions"
PURPOSE "Needed for QuickShare applet"
URL "https://commits.kde.org/purpose"
TYPE RUNTIME
)
find_package(KirigamiAddons CONFIG)
set_package_properties(KirigamiAddons PROPERTIES
DESCRIPTION "Extra controls for Kirigami applications"
PURPOSE "Required at runtime for the User List widget"
TYPE RUNTIME
)
find_package(KItemModels CONFIG)
set_package_properties(KItemModels PROPERTIES
DESCRIPTION "Set of item models extending the Qt model-view framework"
PURPOSE "Required at runtime for the Dictionary, Kate Profiles, and Konsole Profiles applets"
TYPE RUNTIME
)
find_package(ICU 66.1 COMPONENTS uc i18n)
set_package_properties(ICU
PROPERTIES DESCRIPTION "Unicode and Globalization support for software applications"
TYPE OPTIONAL
PURPOSE "Provides alternate calendar systems that are not available in QCalendar"
)
if(ICU_FOUND)
set(HAVE_ICU TRUE)
endif()
find_package(Qt6Quick3D CONFIG)
set_package_properties(Qt6Quick3D PROPERTIES
DESCRIPTION "A high-level API for creating 3D content and 3D user interfaces based on Qt Quick"
PURPOSE "Required for desktop cube"
TYPE RUNTIME
)
add_definitions(
-DQT_DEPRECATED_WARNINGS
-DQT_NO_URL_CAST_FROM_STRING
)
ecm_set_disabled_deprecation_versions(
QT 6.5.0
)
add_subdirectory(dict)
add_subdirectory(kdeds)
add_subdirectory(profiles)
add_subdirectory(applets)
add_subdirectory(runners)
add_subdirectory(wallpapers)
add_subdirectory(kwin)
add_subdirectory(plasmacalendarplugins)
add_subdirectory(templates)
add_subdirectory(appiumtests)
# add clang-format target for all our real source files
file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h)
kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES})
kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)
ki18n_install(po)
ecm_qt_install_logging_categories(EXPORT KDEPLASMAADDONS
FILE kdeplasma-addons.categories
DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}
)
feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)