1
- cmake_minimum_required (VERSION 3.13.4 )
1
+ cmake_minimum_required (VERSION 3.16 )
2
2
project (dde-session-shell C CXX )
3
3
4
- set (CMAKE_CXX_STANDARD 14 )
4
+ set (CMAKE_CXX_STANDARD 17 )
5
5
set (CMAKE_INCLUDE_CURRENT_DIR ON )
6
6
set (CMAKE_AUTOMOC ON )
7
7
set (CMAKE_AUTORCC ON )
@@ -30,13 +30,8 @@ if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "mips64")
30
30
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -ftree-vectorize -march=loongson3a -mhard-float -mno-micromips -mno-mips16 -flax-vector-conversions -mloongson-ext2 -mloongson-mmi" )
31
31
endif ()
32
32
33
- if (NOT (${CMAKE_BUILD_TYPE} MATCHES "Debug" ))
34
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Ofast" )
35
-
36
- # generate qm
37
- execute_process (COMMAND bash "translate_generation.sh"
38
- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} )
39
- endif ()
33
+ set (QT_VERSION_MAJOR 6 )
34
+ set (DTK_VERSION_MAJOR 6 )
40
35
41
36
if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT )
42
37
set (CMAKE_INSTALL_PREFIX /usr )
@@ -46,131 +41,67 @@ include(GNUInstallDirs)
46
41
# Find the library
47
42
find_package (PAM REQUIRED )
48
43
find_package (PkgConfig REQUIRED )
49
- find_package (DtkWidget REQUIRED )
50
- find_package (DtkCMake REQUIRED )
51
- find_package (DtkCore REQUIRED )
52
- find_package (Qt5 COMPONENTS
53
- Core
54
- Widgets
55
- Concurrent
56
- X11Extras
57
- DBus
58
- Xml
59
- Svg
60
- Network
61
- REQUIRED )
62
- find_package (DtkTools REQUIRED )
44
+ find_package (Qt${QT_VERSION_MAJOR} ${REQUIRED_QT_VERSION} REQUIRED COMPONENTS Core Widgets Concurrent DBus Xml Svg Network LinguistTools )
45
+ find_package (Dtk${DTK_VERSION_MAJOR} REQUIRED COMPONENTS Widget Core Tools )
63
46
64
47
pkg_check_modules (XCB_EWMH REQUIRED xcb-ewmh x11 xi xcursor xfixes xrandr xext xtst )
65
- pkg_check_modules (QGSettings REQUIRED gsettings-qt )
66
- pkg_check_modules (Greeter REQUIRED liblightdm-qt5-3 )
48
+ pkg_check_modules (Greeter REQUIRED liblightdm-qt6-3 )
49
+
50
+ ## qm files
51
+ file (GLOB TS_FILES "translations/*.ts" )
52
+ qt_add_translation (QM_FILES ${TS_FILES} )
53
+ add_custom_target (dde-session-shell_language ALL DEPENDS ${QM_FILES} )
67
54
68
55
set (Qt_LIBS
69
- Qt5 ::Core
70
- Qt5 ::Gui
71
- Qt5 ::DBus
72
- Qt5 ::Widgets
73
- Qt5::X11Extras
74
- Qt5 ::Xml
75
- Qt5 ::Svg
56
+ Qt${QT_VERSION_MAJOR} ::Core
57
+ Qt${QT_VERSION_MAJOR} ::Gui
58
+ Qt${QT_VERSION_MAJOR} ::DBus
59
+ Qt${QT_VERSION_MAJOR} ::Widgets
60
+ Qt${QT_VERSION_MAJOR}::Concurrent
61
+ Qt${QT_VERSION_MAJOR} ::Xml
62
+ Qt${QT_VERSION_MAJOR} ::Svg
76
63
)
77
64
78
65
set (XML2CPP_DIR ${PROJECT_SOURCE_DIR} /src/global_util/dbus )
79
66
80
- function (generation_dbus_interface xml class_name class_file )
81
- execute_process (COMMAND ${DTK_XML2CPP} -c ${class_name} -p ${class_file} ${xml}
82
- WORKING_DIRECTORY ${XML2CPP_DIR} )
83
- endfunction (generation_dbus_interface )
84
-
85
- generation_dbus_interface (
86
- ${CMAKE_SOURCE_DIR} /xml/org.deepin.dde.Authenticate1.xml
87
- Authenticate
88
- ${XML2CPP_DIR} /authenticate_interface
89
- )
90
-
91
- generation_dbus_interface (
92
- ${CMAKE_SOURCE_DIR} /xml/com.huawei.switchos.xml
93
- HuaWeiSwitchOS
94
- ${XML2CPP_DIR} /huaweiswitchos_interface
95
- )
96
-
97
- generation_dbus_interface (
98
- ${CMAKE_SOURCE_DIR} /xml/org.deepin.dde.Accounts1.xml
99
- Accounts
100
- ${XML2CPP_DIR} /accounts_interface
101
- )
102
-
103
- generation_dbus_interface (
104
- ${CMAKE_SOURCE_DIR} /xml/org.deepin.dde.Accounts1.User.xml
105
- AccountsUser
106
- ${XML2CPP_DIR} /accountsuser_interface
107
- )
108
-
109
- generation_dbus_interface (
110
- ${CMAKE_SOURCE_DIR} /xml/org.deepin.dde.ImageEffect1.xml
111
- ImageEffect
112
- ${XML2CPP_DIR} /imageeffect_interface
113
- )
114
-
115
- generation_dbus_interface (
116
- ${CMAKE_SOURCE_DIR} /xml/org.deepin.dde.Logined.xml
117
- Logined
118
- ${XML2CPP_DIR} /logined_interface
119
- )
120
-
121
- generation_dbus_interface (
122
- ${CMAKE_SOURCE_DIR} /xml/org.deepin.dde.PowerManager1.xml
123
- PowerManager
124
- ${XML2CPP_DIR} /powermanager_interface
125
- )
126
-
127
- generation_dbus_interface (
128
- ${CMAKE_SOURCE_DIR} /xml/org.deepin.dde.SystemPower1.xml
129
- SystemPower
130
- ${XML2CPP_DIR} /systempower_interface
131
- )
132
-
133
- generation_dbus_interface (
134
- ${CMAKE_SOURCE_DIR} /xml/com.deepin.wm.xml
135
- wm
136
- ${XML2CPP_DIR} /wm_interface
137
- )
138
-
139
- generation_dbus_interface (
140
- ${CMAKE_SOURCE_DIR} /xml/org.deepin.dde.Authenticate1.Session2.xml
141
- AuthenticateSession2
142
- ${XML2CPP_DIR} /authenticatesession2_interface
143
- )
144
-
145
- generation_dbus_interface (
146
- ${CMAKE_SOURCE_DIR} /xml/org.deepin.dde.SessionManager1.xml
147
- SessionManager
148
- ${XML2CPP_DIR} /sessionmanager_interface
67
+ function (generation_dbus_interface xml class_file )
68
+ set (file_name ${XML2CPP_DIR} /${class_file} )
69
+ execute_process (
70
+ COMMAND ${DTK_XML2CPP} -p ${file_name} ${xml}
71
+ WORKING_DIRECTORY ${XML2CPP_DIR}
72
+ )
73
+ endfunction ()
74
+
75
+ set (DBUS_INTERFACES
76
+ "${CMAKE_SOURCE_DIR} /xml/org.deepin.dde.Authenticate1.xml authenticate1interface"
77
+ "${CMAKE_SOURCE_DIR} /xml/com.huawei.switchos.xml switchosinterface"
78
+ "${CMAKE_SOURCE_DIR} /xml/org.deepin.dde.Accounts1.xml accounts1interface"
79
+ "${CMAKE_SOURCE_DIR} /xml/org.deepin.dde.Accounts1.User.xml userinterface"
80
+ "${CMAKE_SOURCE_DIR} /xml/org.deepin.dde.ImageEffect1.xml imageeffect1interface"
81
+ "${CMAKE_SOURCE_DIR} /xml/org.deepin.dde.Logined.xml loginedinterface"
82
+ "${CMAKE_SOURCE_DIR} /xml/org.deepin.dde.PowerManager1.xml powermanager1interface"
83
+ "${CMAKE_SOURCE_DIR} /xml/org.deepin.dde.SystemPower1.xml systempower1interface"
84
+ "${CMAKE_SOURCE_DIR} /xml/com.deepin.wm.xml wminterface"
85
+ "${CMAKE_SOURCE_DIR} /xml/org.deepin.dde.Authenticate1.Session2.xml session2interface"
86
+ "${CMAKE_SOURCE_DIR} /xml/org.deepin.dde.SessionManager1.xml sessionmanager1interface"
87
+ "${CMAKE_SOURCE_DIR} /xml/org.deepin.dde.SystemDisplay1.xml systemdisplay1interface"
88
+ "${CMAKE_SOURCE_DIR} /xml/org.freedesktop.DBus.xml dbusinterface"
89
+ "${CMAKE_SOURCE_DIR} /xml/org.freedesktop.login1.session.self.xml selfinterface"
149
90
)
150
91
151
- generation_dbus_interface (
152
- ${CMAKE_SOURCE_DIR} /xml/org.deepin.dde.SoundThemePlayer1.xml
153
- SoundThemePlayer
154
- ${XML2CPP_DIR} /soundthemeplayer_interface
155
- )
92
+ foreach (interface IN LISTS DBUS_INTERFACES )
93
+ string (REPLACE " " ";" interface_list "${interface} " )
156
94
157
- generation_dbus_interface (
158
- ${CMAKE_SOURCE_DIR} /xml/org.deepin.dde.SystemDisplay1.xml
159
- SystemDisplay
160
- ${XML2CPP_DIR} /systemdisplay_interface
161
- )
95
+ list (GET interface_list 0 XML_FILE )
96
+ list (GET interface_list 1 CLASS_FILE )
162
97
163
- generation_dbus_interface (
164
- ${CMAKE_SOURCE_DIR} /xml/org.freedesktop.DBus.xml
165
- FreedesktopDBus
166
- ${XML2CPP_DIR} /freedesktopdbus_interface
167
- )
98
+ list (LENGTH interface_list list_len )
99
+ if (list_len LESS 2 )
100
+ message (FATAL_ERROR "Invalid DBus interface definition: ${interface} " )
101
+ endif ()
168
102
169
- generation_dbus_interface (
170
- ${CMAKE_SOURCE_DIR} /xml/org.freedesktop.login1.session.self.xml
171
- Login1SessionSelf
172
- ${XML2CPP_DIR} /login1sessionself_interface
173
- )
103
+ generation_dbus_interface (${XML_FILE} ${CLASS_FILE} )
104
+ endforeach ()
174
105
175
106
include_directories (${PROJECT_SOURCE_DIR} /src/global_util )
176
107
include_directories (${PROJECT_SOURCE_DIR} /src/global_util/dbus )
@@ -198,7 +129,6 @@ set(QRCS
198
129
)
199
130
200
131
set (LOCK_SRCS
201
- ${transaction_DBUS_SCRS}
202
132
${GLOBAL_UTILS}
203
133
${GLOBAL_UTILS_DBUS}
204
134
${GLOBAL_UTILS_KEYBOARDMONITOR}
@@ -222,37 +152,26 @@ add_executable(dde-lock
222
152
)
223
153
target_include_directories (dde-lock PUBLIC
224
154
${PAM_INCLUDE_DIR}
225
- ${DTKWIDGET_INCLUDE_DIR}
226
- ${DTKCORE_INCLUDE_DIR}
227
155
${XCB_EWMH_INCLUDE_DIRS}
228
- ${Qt5Gui_PRIVATE_INCLUDE_DIRS}
229
156
${PROJECT_BINARY_DIR}
230
- ${QGSettings_INCLUDE_DIRS}
231
- ${Qt5X11Extras_INCLUDE_DIRS}
232
157
${PROJECT_SOURCE_DIR} /src/dde-lock
233
158
${PROJECT_SOURCE_DIR} /src/dde-lock/dbus
234
159
${Greeter_INCLUDE_DIRS}
235
160
)
161
+
236
162
target_link_libraries (dde-lock PRIVATE
237
163
${Qt_LIBS}
238
164
${PAM_LIBRARIES}
239
165
${XCB_EWMH_LIBRARIES}
240
- ${DtkWidget_LIBRARIES}
241
- ${DtkCore_LIBRARIES}
242
- ${Qt5Widgets_LIBRARIES}
243
- ${Qt5Concurrent_LIBRARIES}
244
- ${Qt5X11Extras_LIBRARIES}
245
- ${Qt5DBus_LIBRARIES}
246
- ${Qt5Network_LIBRARIES}
247
- ${QGSettings_LIBRARIES}
166
+ Dtk${DTK_VERSION_MAJOR}::Widget
167
+ Dtk${DTK_VERSION_MAJOR}::Core
248
168
${Greeter_LIBRARIES}
249
169
${DEEPIN_PW_CHECK}
250
170
)
251
171
252
172
set (DEEPIN_PW_CHECK libdeepin_pw_check.so )
253
173
254
174
set (GREETER_SRCS
255
- ${transaction_DBUS_SCRS}
256
175
${GLOBAL_UTILS}
257
176
${GLOBAL_UTILS_DBUS}
258
177
${GLOBAL_UTILS_KEYBOARDMONITOR}
@@ -277,13 +196,8 @@ add_executable(lightdm-deepin-greeter
277
196
278
197
target_include_directories (lightdm-deepin-greeter PUBLIC
279
198
${PAM_INCLUDE_DIR}
280
- ${DTKWIDGET_INCLUDE_DIR}
281
- ${DTKCORE_INCLUDE_DIR}
282
199
${XCB_EWMH_INCLUDE_DIRS}
283
- ${Qt5Gui_PRIVATE_INCLUDE_DIRS}
284
200
${PROJECT_BINARY_DIR}
285
- ${QGSettings_INCLUDE_DIRS}
286
- ${Qt5X11Extras_INCLUDE_DIRS}
287
201
${Greeter_INCLUDE_DIRS}
288
202
${PROJECT_SOURCE_DIR} /src/lightdm-deepin-greeter
289
203
)
@@ -301,14 +215,8 @@ target_link_libraries(lightdm-deepin-greeter PRIVATE
301
215
${Qt_LIBS}
302
216
${PAM_LIBRARIES}
303
217
${XCB_EWMH_LIBRARIES}
304
- ${DtkWidget_LIBRARIES}
305
- ${DtkCore_LIBRARIES}
306
- ${Qt5Widgets_LIBRARIES}
307
- ${Qt5Concurrent_LIBRARIES}
308
- ${Qt5X11Extras_LIBRARIES}
309
- ${Qt5DBus_LIBRARIES}
310
- ${Qt5Network_LIBRARIES}
311
- ${QGSettings_LIBRARIES}
218
+ Dtk${DTK_VERSION_MAJOR}::Widget
219
+ Dtk${DTK_VERSION_MAJOR}::Core
312
220
${Greeter_LIBRARIES}
313
221
${DEEPIN_PW_CHECK}
314
222
)
@@ -338,7 +246,6 @@ install(FILES files/deepin-greeter DESTINATION ${CMAKE_INSTALL_BINDIR})
338
246
file (GLOB SCRIPTS scripts/* )
339
247
install (PROGRAMS ${SCRIPTS} DESTINATION ${CMAKE_INSTALL_SYSCONFDIR} /deepin/greeters.d )
340
248
341
- file (GLOB QM_FILES "translations/*.qm" )
342
249
install (FILES ${QM_FILES} DESTINATION ${CMAKE_INSTALL_DATADIR} /dde-session-shell/translations )
343
250
install (FILES qt-theme.ini DESTINATION ${CMAKE_INSTALL_SYSCONFDIR} /lightdm/deepin )
344
251
@@ -351,9 +258,6 @@ install(FILES files/lightdm-deepin-greeter.conf DESTINATION ${CMAKE_INSTALL_DATA
351
258
file (GLOB SERVICES files /*.service )
352
259
install (FILES ${SERVICES} DESTINATION ${CMAKE_INSTALL_DATADIR} /dbus-1/services )
353
260
354
- #schemas
355
- install (FILES xml/com.deepin.dde.session-shell.gschema.xml DESTINATION ${CMAKE_INSTALL_DATADIR} /glib-2.0/schemas )
356
-
357
261
# dev
358
262
file (GLOB INTERFACE interface /*.h )
359
263
install (FILES ${INTERFACE} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /dde-session-shell )
@@ -374,5 +278,6 @@ file(GLOB PAM_CONFIG files/pam.d/*)
374
278
install (FILES ${PAM_CONFIG} DESTINATION ${CMAKE_INSTALL_SYSCONFDIR} /pam.d/ )
375
279
376
280
# config
377
- dconfig_meta_files (APPID org.deepin.dde.lock FILES configs/org.deepin.dde.lock.json )
378
- dconfig_meta_files (APPID org.deepin.dde.lightdm-deepin-greeter FILES configs/org.deepin.dde.lightdm-deepin-greeter.json )
281
+ dtk_add_config_meta_files (APPID org.deepin.dde.lock FILES configs/org.deepin.dde.lock.json )
282
+ dtk_add_config_meta_files (APPID org.deepin.dde.lightdm-deepin-greeter FILES configs/org.deepin.dde.lightdm-deepin-greeter.json )
283
+ dtk_add_config_meta_files (APPID org.deepin.dde.session-shell FILES configs/org.deepin.dde.session-shell.json )
0 commit comments