-
-
Notifications
You must be signed in to change notification settings - Fork 15
/
Copy pathCMakeLists.txt
150 lines (116 loc) · 4.57 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
cmake_minimum_required(VERSION 3.16)
set(KF_VERSION "6.11.0") # handled by release scripts
set(KF_DEP_VERSION "6.10.0") # handled by release scripts
project(qqc2-desktop-style VERSION ${KF_VERSION})
set(REQUIRED_QT_VERSION 6.6.0)
find_package(ECM 6.10.0 REQUIRED NO_MODULE)
# where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is checked
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH})
include(KDEInstallDirs)
include(ECMSetupVersion)
include(ECMGenerateHeaders)
include(ECMQmlModule)
include(ECMPoQmTools)
include(ECMFindQmlModule)
include(KDECMakeSettings)
include(KDEGitCommitHooks)
include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE)
include(ECMDeprecationSettings)
find_package(Qt6 ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE COMPONENTS Core Quick Gui Widgets QuickControls2)
# shall we use DBus?
# enabled per default on Linux & BSD systems
set(USE_DBUS_DEFAULT OFF)
if(UNIX AND NOT APPLE AND NOT ANDROID AND NOT HAIKU)
set(USE_DBUS_DEFAULT ON)
endif()
option(USE_DBUS "Build components using DBus" ${USE_DBUS_DEFAULT})
if(USE_DBUS)
find_package(Qt6 ${REQUIRED_QT_VERSION} CONFIG REQUIRED DBus)
set(HAVE_DBUS ON)
endif()
if (BUILD_TESTING)
include(ECMAddTests)
find_package(Qt6 ${REQUIRED_QT_VERSION} REQUIRED COMPONENTS Test QuickTest)
endif()
find_package(KF6 ${KF_DEP_VERSION} REQUIRED COMPONENTS Config KirigamiPlatform)
# IconThemes and ColorScheme are optional
find_package(KF6IconThemes ${KF_DEP_VERSION})
find_package(KF6ColorScheme ${KF_DEP_VERSION})
if (NOT APPLE AND NOT WIN32)
find_package(X11)
endif()
set_package_properties(IconThemes
PROPERTIES
DESCRIPTION "KF6 IconThemes framework"
TYPE OPTIONAL
PURPOSE "Optional integration of Kirigami with KIconLoader icons handling for a better integration with Plasma Desktop"
)
set_package_properties(ColorScheme
PROPERTIES
DESCRIPTION "KF6 ColorScheme framework"
TYPE OPTIONAL
PURPOSE "Optional integration of Kirigami with KColorScheme for color palettes integration with Plasma Desktop"
)
find_package(PkgConfig)
set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF6QQC2DesktopStyle")
configure_package_config_file(
"${CMAKE_CURRENT_SOURCE_DIR}/KF6QQC2DesktopStyleConfig.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/KF6QQC2DesktopStyleConfig.cmake"
INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
PATH_VARS CMAKE_INSTALL_PREFIX
)
install(FILES
"${CMAKE_CURRENT_BINARY_DIR}/KF6QQC2DesktopStyleConfig.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/KF6QQC2DesktopStyleConfigVersion.cmake"
DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
COMPONENT Devel
)
ecm_setup_version(PROJECT
VARIABLE_PREFIX QQC2DESKTOPSTYLE
PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF6QQC2DesktopStyleConfigVersion.cmake"
SOVERSION 6
)
ecm_find_qmlmodule(org.kde.sonnet 1.0)
ecm_set_disabled_deprecation_versions(
QT 6.8.0
KF 6.10.0
)
add_subdirectory(plugin)
if (KF6IconThemes_FOUND AND KF6ColorScheme_FOUND)
add_subdirectory(kirigami-plasmadesktop-integration)
endif()
ecm_add_qml_module(org_kde_desktop URI "org.kde.desktop" VERSION 1.0 GENERATE_PLUGIN_SOURCE DEPENDENCIES "org.kde.qqc2desktopstyle.private" "org.kde.desktop.private")
ecm_create_qm_loader(org_kde_desktop_QM_LOADER qqc2desktopstyle_qt)
target_sources(org_kde_desktop PRIVATE ${org_kde_desktop_QM_LOADER})
file(GLOB _public_qml "org.kde.desktop/*.qml")
ecm_target_qml_sources(org_kde_desktop
VERSION 1.0
SOURCES ${_public_qml}
)
# Private module goes separately, because a type can not be both internal and singleton (QTBUG-111545)
ecm_add_qml_module(org_kde_desktop_private
URI "org.kde.desktop.private"
VERSION 1.0
GENERATE_PLUGIN_SOURCE
DEPENDENCIES "org.kde.qqc2desktopstyle.private"
)
set_source_files_properties(
org.kde.desktop/private/GlobalSonnetSettings.qml
org.kde.desktop/private/MobileTextActionsToolBar.qml
org.kde.desktop/private/TextFieldContextMenu.qml
PROPERTIES
QT_QML_SINGLETON_TYPE TRUE
)
file(GLOB _private_qml "org.kde.desktop/private/*.qml")
ecm_target_qml_sources(org_kde_desktop_private
VERSION 1.0
SOURCES ${_private_qml}
)
ecm_finalize_qml_module(org_kde_desktop DESTINATION ${KDE_INSTALL_QMLDIR})
ecm_finalize_qml_module(org_kde_desktop_private DESTINATION ${KDE_INSTALL_QMLDIR})
# See https://bugreports.qt.io/browse/QTBUG-123216
add_dependencies(org_kde_desktop qqc2desktopstyleplugin org_kde_desktop_private)
ecm_install_po_files_as_qm(poqm)
include(ECMFeatureSummary)
ecm_feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)