Skip to content

Commit f85816b

Browse files
committed
feat: add DTK6/Qt6 support and unified build profiles
1. Modified debian/control to support both DTK5/Qt5 and DTK6/Qt6 builds 2. Added conditional build dependencies using Build-Profiles (<!nodtk5> and <!nodtk6>) 3. Created new dde-qt6integration package alongside existing dde- qt5integration 4. Added separate .install files for Qt5 and Qt6 plugin installations 5. Reorganized build dependencies to separate Qt5 and Qt6 specific packages Log: Added support for DTK6 with Qt6 integration plugins Influence: 1. Test building with default profile (both DTK5 and DTK6) 2. Test building with nodtk5 profile (DTK6 only) 3. Test building with nodtk6 profile (DTK5 only) 4. Verify both dde-qt5integration and dde-qt6integration packages are created correctly 5. Check that plugin files are installed to correct Qt5 and Qt6 directories 6. Verify package dependencies are correctly set for each integration package feat: 添加DTK6/Qt6支持和统一构建配置 1. 修改debian/control以支持DTK5/Qt5和DTK6/Qt6双版本构建 2. 使用构建配置文件添加条件依赖(<!nodtk5>和<!nodtk6>) 3. 在现有dde-qt5integration包基础上新增dde-qt6integration包 4. 为Qt5和Qt6插件安装添加独立的.install文件 5. 重新组织构建依赖,分离Qt5和Qt6特定包 Log: 新增DTK6与Qt6集成插件支持 Influence: 1. 测试默认配置文件构建(同时构建DTK5和DTK6) 2. 测试使用nodtk5配置文件构建(仅构建DTK6) 3. 测试使用nodtk6配置文件构建(仅构建DTK5) 4. 验证dde-qt5integration和dde-qt6integration包是否正确生成 5. 检查插件文件是否正确安装到Qt5和Qt6目录 6. 验证各集成包的依赖关系是否正确设置
1 parent bac5032 commit f85816b

File tree

12 files changed

+109
-25
lines changed

12 files changed

+109
-25
lines changed

CMakeLists.txt

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,28 +4,41 @@
44

55
cmake_minimum_required(VERSION 3.13)
66

7-
file(READ "${CMAKE_CURRENT_SOURCE_DIR}/VERSION" DTK_FILE_VERSION)
8-
string(STRIP "${DTK_FILE_VERSION}" DTK_FILE_VERSION)
9-
set(DTK_VERSION "${DTK_FILE_VERSION}" CACHE STRING "Project version")
7+
file(READ "${CMAKE_CURRENT_SOURCE_DIR}/VERSION" FILE_VERSION)
8+
string(STRIP "${FILE_VERSION}" FILE_VERSION)
109

1110
project(
1211
qtintegration
13-
VERSION ${DTK_VERSION}
12+
VERSION ${FILE_VERSION}
1413
DESCRIPTION "Qt platform integration for DTK"
1514
HOMEPAGE_URL "https://github.com/linuxdeepin/qt5integration"
1615
LANGUAGES CXX C
1716
)
1817

1918
option(ENABLE_COV "Enable code coverage" OFF)
2019

21-
if(PROJECT_VERSION_MAJOR EQUAL 6)
22-
set(VERSION_SUFFIX 6)
20+
# 引入 DTK5/DTK6 构建选项
21+
option(DTK5 "Build DTK5." ON)
22+
if(DTK5)
23+
set(DTK_VERSION_MAJOR "5")
24+
set(DTK_NAME_SUFFIX "") # DTK5 产品名称后缀为空
25+
else()
26+
set(DTK_VERSION_MAJOR "6")
27+
set(DTK_NAME_SUFFIX "6") # DTK6 产品名称后缀为 "6"
28+
endif()
29+
30+
set(DTK_VERSION_MINOR ${PROJECT_VERSION_MINOR})
31+
set(DTK_VERSION_PATCH ${PROJECT_VERSION_PATCH})
32+
set(DTK_VERSION "${DTK_VERSION_MAJOR}.${DTK_VERSION_MINOR}.${DTK_VERSION_PATCH}")
33+
# 官方约定:DTK5 使用 Qt5,DTK6 使用 Qt6
34+
set(QT_VERSION_MAJOR ${DTK_VERSION_MAJOR})
35+
36+
if(QT_VERSION_MAJOR EQUAL 6)
2337
find_package(QT NAMES Qt6 REQUIRED COMPONENTS Core)
2438
if(QT_VERSION VERSION_GREATER_EQUAL 6.10)
2539
find_package(Qt6 COMPONENTS CorePrivate GuiPrivate WidgetsPrivate REQUIRED)
2640
endif()
2741
else()
28-
set(VERSION_SUFFIX)
2942
find_package(QT NAMES Qt5 REQUIRED COMPONENTS Core)
3043
endif()
3144

@@ -104,7 +117,7 @@ function(dtk_add_plugin)
104117
endif()
105118
endfunction()
106119

107-
find_package(Dtk${VERSION_SUFFIX} REQUIRED COMPONENTS Widget)
120+
find_package(Dtk${DTK_NAME_SUFFIX} REQUIRED COMPONENTS Widget)
108121

109122
option(ENABLE_QT_XDG_ICON_LOADER "Enable QtXdgIconLoader" ON)
110123
find_package(Qt${QT_VERSION_MAJOR}Xdg)

debian/control

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,29 +5,42 @@ Maintainer: Deepin Packages Builder <[email protected]>
55
Build-Depends:
66
debhelper (>=9),
77
cmake,
8-
qtbase5-dev,
9-
qtbase5-private-dev,
10-
libqt5xdg-dev,
11-
libdtkgui-dev (>=5.6.13),
12-
libdtkwidget-dev,
138
pkg-config,
14-
libqt5x11extras5-dev,
159
libfontconfig1-dev,
1610
libfreetype-dev,
1711
libglib2.0-dev,
18-
libqt5svg5-dev,
19-
libqt5xdgiconloader-dev,
2012
libmtdev-dev,
2113
libegl1-mesa-dev,
2214
libxrender-dev,
2315
libgtest-dev,
24-
libgmock-dev
16+
libgmock-dev,
17+
qtbase5-dev <!nodtk5>,
18+
qtbase5-private-dev <!nodtk5>,
19+
libqt5xdg-dev <!nodtk5>,
20+
libdtkgui-dev (>=5.6.13) <!nodtk5>,
21+
libdtkwidget-dev <!nodtk5>,
22+
libqt5x11extras5-dev <!nodtk5>,
23+
libqt5svg5-dev <!nodtk5>,
24+
libqt5xdgiconloader-dev <!nodtk5>,
25+
qt6-base-dev <!nodtk6>,
26+
qt6-base-private-dev <!nodtk6>,
27+
libdtk6gui-dev <!nodtk6>,
28+
libdtk6widget-dev <!nodtk6>,
29+
qt6-svg-dev <!nodtk6>
2530
Standards-Version: 3.9.8
2631

2732
Package: dde-qt5integration
2833
Architecture: any
2934
Provides: libqt5deepintheme-plugin
3035
Conflicts: libqt5deepintheme-plugin
3136
Depends: ${shlibs:Depends}, ${misc:Depends}, dde-qt5xcb-plugin
32-
Description: Qt platform theme integration plugins for DDE
37+
Build-Profiles: <!nodtk5>
38+
Description: Qt platform theme integration plugins for DDE (DTK5 with Qt5)
3339
Multiple Qt plugins to provide better Qt5 integration for DDE is included.
40+
41+
Package: dde-qt6integration
42+
Architecture: any
43+
Depends: ${shlibs:Depends}, ${misc:Depends}
44+
Build-Profiles: <!nodtk6>
45+
Description: Qt platform theme integration plugins for DDE (DTK6 with Qt6)
46+
Multiple Qt plugins to provide better Qt6 integration for DDE is included.

debian/dde-qt5integration.install

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
usr/lib/*/qt5/plugins/platformthemes/
2+
usr/lib/*/qt5/plugins/styles/
3+
usr/lib/*/qt5/plugins/iconengines/
4+
usr/lib/*/qt5/plugins/imageformats/

debian/dde-qt6integration.install

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
usr/lib/*/qt6/plugins/platformthemes/
2+
usr/lib/*/qt6/plugins/styles/
3+
usr/lib/*/qt6/plugins/iconengines/
4+
usr/lib/*/qt6/plugins/imageformats/

debian/rules

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,63 @@
11
#!/usr/bin/make -f
2+
DPKG_EXPORT_BUILDFLAGS = 1
3+
include /usr/share/dpkg/default.mk
24

35
# 安全编译参数
46
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
57
export DEB_CFLAGS_MAINT_APPEND = -Wall
68
export DEB_CXXFLAGS_MAINT_APPEND = -Wall
79
export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,-z,noexecstack -Wl,-E
810

11+
# 版本映射:x.y.z -> 5.y.z 和 6.y.z
12+
DTK5_VERSION := $(shell echo $(DEB_VERSION_UPSTREAM) | sed -E 's/^[0-9]+(\.|[^0-9]|$$)/5\1/')
13+
DTK6_VERSION := $(shell echo $(DEB_VERSION_UPSTREAM) | sed -E 's/^[0-9]+(\.|[^0-9]|$$)/6\1/')
14+
15+
# Build-Profiles 控制
16+
BUILD_DTK5 := $(if $(filter nodtk5,$(DEB_BUILD_PROFILES)),OFF,ON)
17+
BUILD_DTK6 := $(if $(filter nodtk6,$(DEB_BUILD_PROFILES)),OFF,ON)
18+
919
%:
1020
dh $@
1121

22+
override_dh_auto_configure:
23+
ifeq ($(BUILD_DTK5),ON)
24+
mkdir -p build-dtk5
25+
QT_SELECT=qt5 dh_auto_configure --builddirectory=build-dtk5 -- \
26+
$(DEB_CMAKE_EXTRA_FLAGS) \
27+
-DBUILD_TESTING=OFF \
28+
-DDTK5=ON
29+
endif
30+
ifeq ($(BUILD_DTK6),ON)
31+
mkdir -p build-dtk6
32+
dh_auto_configure --builddirectory=build-dtk6 -- \
33+
$(DEB_CMAKE_EXTRA_FLAGS) \
34+
-DBUILD_TESTING=OFF \
35+
-DDTK5=OFF
36+
endif
37+
38+
override_dh_auto_build:
39+
ifeq ($(BUILD_DTK5),ON)
40+
QT_SELECT=qt5 dh_auto_build --builddirectory=build-dtk5
41+
endif
42+
ifeq ($(BUILD_DTK6),ON)
43+
dh_auto_build --builddirectory=build-dtk6
44+
endif
45+
46+
override_dh_auto_install:
47+
ifeq ($(BUILD_DTK5),ON)
48+
QT_SELECT=qt5 dh_auto_install --builddirectory=build-dtk5
49+
endif
50+
ifeq ($(BUILD_DTK6),ON)
51+
dh_auto_install --builddirectory=build-dtk6
52+
endif
53+
1254
override_dh_shlibdeps:
1355
dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info
56+
57+
override_dh_auto_test:
58+
# 测试在 build 阶段已执行
59+
60+
override_dh_auto_clean:
61+
dh_auto_clean --builddirectory=build-dtk5
62+
dh_auto_clean --builddirectory=build-dtk6
63+
rm -rf build-dtk5 build-dtk6

iconengineplugins/diconengine/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,5 @@ dtk_add_plugin(
1414
HEADERS
1515
DEPENDENCIES
1616
Qt${QT_VERSION_MAJOR}::GuiPrivate
17-
Dtk${VERSION_SUFFIX}::Gui
17+
Dtk${DTK_NAME_SUFFIX}::Gui
1818
)

iconengineplugins/svgiconengine/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,6 @@ dtk_add_plugin(
1717
qsvgiconengine.h
1818
DEPENDENCIES
1919
Qt${QT_VERSION_MAJOR}::GuiPrivate
20-
Dtk${VERSION_SUFFIX}::Gui
20+
Dtk${DTK_NAME_SUFFIX}::Gui
2121
Qt${QT_VERSION_MAJOR}::Concurrent
2222
)

imageformatplugins/dci/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,5 @@ dtk_add_plugin(
1515
HEADERS
1616
qdciiohandler.h
1717
DEPENDENCIES
18-
Dtk${VERSION_SUFFIX}::Gui
18+
Dtk${DTK_NAME_SUFFIX}::Gui
1919
)

imageformatplugins/svg/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,5 @@ dtk_add_plugin(
1515
HEADERS
1616
qsvgiohandler.h
1717
DEPENDENCIES
18-
Dtk${VERSION_SUFFIX}::Gui
18+
Dtk${DTK_NAME_SUFFIX}::Gui
1919
)

platformthemeplugin/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ dtk_add_plugin(
6363
icons/deepin-theme-plugin-icons.qrc
6464
deepin-theme-plugin.qrc
6565
DEPENDENCIES
66-
Dtk${VERSION_SUFFIX}::Gui
66+
Dtk${DTK_NAME_SUFFIX}::Gui
6767
${QT_LIBS}
6868
PkgConfig::Deps
6969
DEFINITIONS

0 commit comments

Comments
 (0)