Skip to content

Commit 4cd5934

Browse files
committed
refactor: port to Qt6, new Wayland implementation
- 将项目整体移植到 Qt6 进行编译 - 弃用了旧的 CMake D-Bus 代码模板生成方式,使用 Qt6 提供的新 API 实现 - 移除了旧的 Wayland 依赖库及其后端,重新使用 wlr_data_device API 为其实现了 Wayland 后端 - 使用 dde-shell 的 layer-shell API 为前端实现窗口贴靠 - 修复部分因为缺少运算符重载在本地产生的编译失败 - 修复了部分 Qt6 下缺失的过时 API 调用 Log:
1 parent f3870ea commit 4cd5934

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+1588
-730
lines changed

.reuse/dep5

+12-2
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@ Copyright: None
3939
License: CC0-1.0
4040

4141
# xml2cpp
42-
Files: dde-clipboard/dbus/* dbus/*.xml dde-clipboard/org.deepin.dde.Clipboard1.xml dbus/interface/.gitignore
43-
Copyright: The Qt Company Ltd.
42+
Files: dde-clipboard/dbus/* dbus/*.xml dde-clipboard/org.deepin.dde.Clipboard1.xml dde-clipboard-daemon/protocol/wlr-data-control-unstable-v1.xml dbus/interface/.gitignore
43+
Copyright: UnionTech Software Technology Co., Ltd.
4444
License: CC0-1.0
4545

4646
# xml
@@ -52,3 +52,13 @@ License: GPL-3.0-or-later
5252
Files: tests/dde-clipboard/qrc/*.buf tests/dde-clipboard/ut_img.cpp tests/dde-clipboard-daemon/plugin/dde-clipboard-loader/ut_qrc.cpp
5353
Copyright: UnionTech Software Technology Co., Ltd.
5454
License: GPL-3.0-or-later
55+
56+
# Plugin package metadata
57+
Files: dock-clipboard-plugin/clipboard.json
58+
Copyright: None
59+
License: CC0-1.0
60+
61+
# Images
62+
Files: dock-clipboard-plugin/resources/**.svg
63+
Copyright: UnionTech Software Technology Co., Ltd.
64+
License: GPL-3.0-or-later

CMakeLists.txt

+33-64
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ set(BIN_NAME dde-clipboard)
55
project(${BIN_NAME})
66

77
#set(CMAKE_VERBOSE_MAKEFILE ON)
8+
set(QT_VERSION_MAJOR 6)
89
set(CMAKE_CXX_STANDARD 17)
910
set(CMAKE_INCLUDE_CURRENT_DIR ON)
1011
set(CMAKE_AUTOMOC ON)
@@ -37,32 +38,20 @@ endif ()
3738

3839
# Find the library
3940
find_package(PkgConfig REQUIRED)
40-
find_package(Dtk COMPONENTS Widget Core REQUIRED)
41-
find_package(Qt5 COMPONENTS Core Gui Widgets DBus Test Concurrent REQUIRED)
41+
find_package(Dtk6 COMPONENTS Widget Core Tools REQUIRED)
42+
find_package(Qt6 COMPONENTS Core Gui Widgets DBus WaylandClient Test Concurrent REQUIRED)
43+
find_package(DDEShell REQUIRED)
4244
find_package(DdeTrayLoader REQUIRED)
4345

4446
find_package(ECM REQUIRED NO_MODULE)
4547
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
46-
find_package(DWayland REQUIRED)
4748

48-
pkg_check_modules(GIO REQUIRED IMPORTED_TARGET gio-qt)
49+
pkg_check_modules(GIO REQUIRED IMPORTED_TARGET gio-qt6)
4950

5051
if (NOT DEFINED SYSTEMD_USER_UNIT_DIR)
5152
pkg_get_variable(SYSTEMD_USER_UNIT_DIR systemd systemduserunitdir)
5253
endif()
5354

54-
find_package(DtkTools REQUIRED)
55-
function(generation_dbus_adaptor xml class_name class_file option)
56-
execute_process(COMMAND qdbusxml2cpp ${option} -a ${class_file} -c ${class_name} ${xml}
57-
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
58-
endfunction(generation_dbus_adaptor)
59-
60-
set(DBUS_INTERFACE ${PROJECT_SOURCE_DIR}/dbus/interface)
61-
function(generation_dbus_interface xml class_name class_file)
62-
execute_process(COMMAND ${DTK_XML2CPP} -c ${class_name} -p ${class_file} ${xml}
63-
WORKING_DIRECTORY ${DBUS_INTERFACE})
64-
endfunction(generation_dbus_interface)
65-
6655
include_directories(
6756
dde-clipboard
6857
dde-clipboard/dbus
@@ -71,30 +60,11 @@ include_directories(
7160
)
7261

7362
#----------------------------dde-clipboard------------------------------
74-
generation_dbus_adaptor(
75-
${CMAKE_SOURCE_DIR}/dde-clipboard/org.deepin.dde.Clipboard1.xml
76-
ClipboardAdaptor
77-
${CMAKE_CURRENT_BINARY_DIR}/clipboard_adaptor
78-
-N
79-
)
8063

81-
generation_dbus_interface(
82-
${CMAKE_SOURCE_DIR}/dbus/org.deepin.dde.Display1.Monitor.xml
83-
Monitor
84-
${DBUS_INTERFACE}/monitor_interface
85-
)
86-
87-
generation_dbus_interface(
88-
${CMAKE_SOURCE_DIR}/dbus/org.deepin.dde.Display1.xml
89-
Display1
90-
${DBUS_INTERFACE}/display_interface
91-
)
92-
93-
generation_dbus_interface(
94-
${CMAKE_SOURCE_DIR}/dbus/org.deepin.dde.daemon.Dock1.xml
95-
Dock1
96-
${DBUS_INTERFACE}/dock_interface
97-
)
64+
qt_add_dbus_adaptor(DBUS_INTERFACES ${CMAKE_SOURCE_DIR}/dde-clipboard/org.deepin.dde.Clipboard1.xml mainwindow.h MainWindow)
65+
dtk_add_dbus_interface(DBUS_INTERFACES ${CMAKE_SOURCE_DIR}/dbus/org.deepin.dde.Display1.Monitor.xml Monitor)
66+
dtk_add_dbus_interface(DBUS_INTERFACES ${CMAKE_SOURCE_DIR}/dbus/org.deepin.dde.Display1.xml Display1)
67+
dtk_add_dbus_interface(DBUS_INTERFACES ${CMAKE_SOURCE_DIR}/dbus/org.deepin.dde.daemon.Dock1.xml Dock1)
9868

9969
include_directories(
10070
${PROJECT_SOURCE_DIR}/dbus/interface
@@ -103,12 +73,6 @@ include_directories(
10373
)
10474

10575
aux_source_directory(dbus/types DBUS_TYPES)
106-
aux_source_directory(dbus/interface DBUS_INTERFACES)
107-
108-
set(Clipboard_DBUS_SCRS
109-
${CMAKE_CURRENT_BINARY_DIR}/clipboard_adaptor.h
110-
${CMAKE_CURRENT_BINARY_DIR}/clipboard_adaptor.cpp
111-
)
11276

11377
file(GLOB_RECURSE Clipboard_SCRS
11478
"dde-clipboard/*.h"
@@ -125,14 +89,15 @@ add_executable(${BIN_NAME}
12589
)
12690

12791
target_link_libraries(${BIN_NAME} PRIVATE
128-
Dtk::Widget
129-
Dtk::Core
92+
Dtk6::Widget
93+
Dtk6::Core
13094
PkgConfig::GIO
131-
Qt5::Core
132-
Qt5::Widgets
133-
Qt5::GuiPrivate
134-
Qt5::Gui
135-
Qt5::DBus
95+
Qt6::Core
96+
Qt6::Widgets
97+
Qt6::GuiPrivate
98+
Qt6::Gui
99+
Qt6::DBus
100+
Dde::Shell
136101
)
137102

138103
macro(install_symlink filepath wantsdir)
@@ -179,13 +144,16 @@ add_executable(${BIN_NAME}
179144
${dde-clipboard-daemon_SCRS}
180145
)
181146

147+
qt_generate_wayland_protocol_client_sources(${BIN_NAME} FILES
148+
${CMAKE_CURRENT_SOURCE_DIR}/dde-clipboard-daemon/protocol/wlr-data-control-unstable-v1.xml)
149+
182150
target_link_libraries(${BIN_NAME} PRIVATE
183-
Qt5::Gui
184-
Qt5::DBus
185-
Qt5::Widgets
186-
Dtk::Core
187-
Qt5::Concurrent
188-
DWaylandClient
151+
Qt6::Gui
152+
Qt6::DBus
153+
Qt6::Concurrent
154+
Qt6::WaylandClient
155+
Qt6::WaylandClientPrivate
156+
Dtk6::Core
189157
)
190158

191159
install(TARGETS ${BIN_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR})
@@ -236,13 +204,14 @@ add_executable(${UT_BIN_NAME}
236204
target_compile_options(${UT_BIN_NAME} PRIVATE -fprofile-arcs -ftest-coverage)
237205

238206
target_link_libraries(${UT_BIN_NAME} PRIVATE
239-
Dtk::Widget
207+
Dtk6::Widget
240208
PkgConfig::GIO
241-
Qt5::Core
242-
Qt5::Widgets
243-
Qt5::DBus
244-
Qt5::Test
245-
Qt5::GuiPrivate
209+
Qt6::Core
210+
Qt6::Widgets
211+
Qt6::DBus
212+
Qt6::Test
213+
Qt6::GuiPrivate
214+
Dde::Shell
246215
-lpthread
247216
-lgcov
248217
-lgtest

0 commit comments

Comments
 (0)