-
-
Notifications
You must be signed in to change notification settings - Fork 6
/
CMakeLists.txt
102 lines (85 loc) · 3.41 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
cmake_minimum_required(VERSION 3.16)
project(PlasmaIntegration)
set(PROJECT_VERSION "6.2.80")
set(PROJECT_VERSION_MAJOR 6)
set(QT5_MIN_VERSION "5.15.2")
set(QT_MIN_VERSION "6.7.0")
set(KF5_MIN_VERSION "5.102.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)
set(QT_NO_CREATE_VERSIONLESS_TARGETS ON)
set(QT_NO_CREATE_VERSIONLESS_FUNCTIONS ON)
find_package(ECM ${KF5_MIN_VERSION} REQUIRED NO_MODULE)
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules ${ECM_MODULE_PATH} )
# We need this because we can't include KDECMakeSettings here, because that
# would need KDEInstallDirs, which we can only include in the qt{5,6} subdirs
# to get the correct installation dirs for each Qt version.
option(BUILD_TESTING "Build the testing tree." ON)
if(BUILD_TESTING)
enable_testing()
endif()
include(KDECompilerSettings NO_POLICY_SCOPE)
include(FeatureSummary)
include(GenerateExportHeader)
include(KDEClangFormat)
include(KDEGitCommitHooks)
include(ECMDeprecationSettings)
find_package(Wayland 1.9 REQUIRED Client)
find_package(PlasmaWaylandProtocols 1.6.0 CONFIG REQUIRED)
option(BUILD_QT5 "Build for Qt5" ON)
option(BUILD_QT6 "Build for Qt6" ON)
#CI is stupid and doesn't allow us to set CMAKE options per build variant
if ($ENV{CI_JOB_NAME_SLUG} MATCHES "qt5")
set(BUILD_QT5 ON)
set(BUILD_QT6 OFF)
elseif($ENV{CI_JOB_NAME_SLUG} MATCHES "qt6")
set(BUILD_QT5 OFF)
set(BUILD_QT6 ON)
endif()
find_package(XCB COMPONENTS XCB)
set_package_properties(XCB PROPERTIES
DESCRIPTION "X protocol C-language Binding"
URL "https://xcb.freedesktop.org"
TYPE REQUIRED
PURPOSE "Required to pass style properties to native Windows on X11 Platform"
)
find_package(FontNotoSans)
set_package_properties(FontNotoSans PROPERTIES
PURPOSE "Default sans-serif font -- this is not detected automatically, pass -DCMAKE_DISABLE_FIND_PACKAGE_FontNotoSans=true to mark it ignored."
URL "https://www.google.com/get/noto/"
TYPE RUNTIME
)
find_package(FontNotoColorEmoji)
set_package_properties(FontNotoColorEmoji PROPERTIES
PURPOSE "Default emoji font -- this is not detected automatically, pass -DCMAKE_DISABLE_FIND_PACKAGE_FontNotoColorEmoji=true to mark it ignored."
URL "https://www.google.com/get/noto/"
TYPE RUNTIME
)
find_package(FontHack)
set_package_properties(FontHack PROPERTIES
PURPOSE "Default monospace font -- this is not detected automatically, pass -DCMAKE_DISABLE_FIND_PACKAGE_FontHack=true to mark it ignored."
URL "https://sourcefoundry.org/hack/"
TYPE RUNTIME
)
find_package(XDGDesktopPortalKDE)
set_package_properties(XDGDesktopPortalKDE PROPERTIES
PURPOSE "Required for open-with dialog to work correctly -- this is not detected automatically, pass -DCMAKE_DISABLE_FIND_PACKAGE_XDGDesktopPortalKDE=true to mark it ignored."
URL "https://invent.kde.org/plasma/xdg-desktop-portal-kde"
TYPE RUNTIME
)
# 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)
if (${BUILD_QT5})
unset(QUERY_EXECUTABLE CACHE)
add_subdirectory(qt5)
endif()
if (${BUILD_QT6})
unset(QUERY_EXECUTABLE CACHE)
add_definitions(-DTRANSLATION_DOMAIN=\"plasmaintegration5\")
add_subdirectory(qt6)
endif()
feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)