Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 20 additions & 8 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,28 +4,39 @@

cmake_minimum_required(VERSION 3.13)

file(READ "${CMAKE_CURRENT_SOURCE_DIR}/VERSION" DTK_FILE_VERSION)
string(STRIP "${DTK_FILE_VERSION}" DTK_FILE_VERSION)
set(DTK_VERSION "${DTK_FILE_VERSION}" CACHE STRING "Project version")
file(READ "${CMAKE_CURRENT_SOURCE_DIR}/VERSION" FILE_VERSION)
string(STRIP "${FILE_VERSION}" FILE_VERSION)

project(
qtintegration
VERSION ${DTK_VERSION}
VERSION ${FILE_VERSION}
DESCRIPTION "Qt platform integration for DTK"
HOMEPAGE_URL "https://github.com/linuxdeepin/qt5integration"
LANGUAGES CXX C
)

option(ENABLE_COV "Enable code coverage" OFF)

if(PROJECT_VERSION_MAJOR EQUAL 6)
set(VERSION_SUFFIX 6)
option(DTK5 "Build DTK5." ON)
if(DTK5)
set(DTK_VERSION_MAJOR "5")
set(DTK_NAME_SUFFIX "")
else()
set(DTK_VERSION_MAJOR "6")
set(DTK_NAME_SUFFIX "6")
endif()

set(DTK_VERSION_MINOR ${PROJECT_VERSION_MINOR})
set(DTK_VERSION_PATCH ${PROJECT_VERSION_PATCH})
set(DTK_VERSION "${DTK_VERSION_MAJOR}.${DTK_VERSION_MINOR}.${DTK_VERSION_PATCH}")
set(QT_VERSION_MAJOR ${DTK_VERSION_MAJOR})

if(QT_VERSION_MAJOR EQUAL 6)
find_package(QT NAMES Qt6 REQUIRED COMPONENTS Core)
if(QT_VERSION VERSION_GREATER_EQUAL 6.10)
find_package(Qt6 COMPONENTS CorePrivate GuiPrivate WidgetsPrivate REQUIRED)
endif()
else()
set(VERSION_SUFFIX)
find_package(QT NAMES Qt5 REQUIRED COMPONENTS Core)
endif()

Expand Down Expand Up @@ -104,7 +115,7 @@ function(dtk_add_plugin)
endif()
endfunction()

find_package(Dtk${VERSION_SUFFIX} REQUIRED COMPONENTS Widget)
find_package(Dtk${DTK_NAME_SUFFIX} REQUIRED COMPONENTS Widget)

option(ENABLE_QT_XDG_ICON_LOADER "Enable QtXdgIconLoader" ON)
find_package(Qt${QT_VERSION_MAJOR}Xdg)
Expand Down Expand Up @@ -134,5 +145,6 @@ if(CMAKE_BUILD_TYPE_LOWER STREQUAL debug)
add_subdirectory(styles)
endif()
if(BUILD_TESTING)
enable_testing()
add_subdirectory(tests)
endif()
2 changes: 1 addition & 1 deletion archlinux/PKGBUILD
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ build() {
cmake . -GNinja \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release
-DDTK5=ON
ninja
}

Expand Down
35 changes: 24 additions & 11 deletions debian/control
Original file line number Diff line number Diff line change
@@ -1,33 +1,46 @@
Source: qt5integration
Section: devel
Priority: optional
Maintainer: Deepin Packages Builder <packages@deepin.com>
Maintainer: Shanshan Ye <yeshanshan@uniontech.com>
Build-Depends:
debhelper (>=9),
cmake,
qtbase5-dev,
qtbase5-private-dev,
libqt5xdg-dev,
libdtkgui-dev (>=5.6.13),
libdtkwidget-dev,
pkg-config,
libqt5x11extras5-dev,
libfontconfig1-dev,
libfreetype-dev,
libglib2.0-dev,
libqt5svg5-dev,
libqt5xdgiconloader-dev,
libmtdev-dev,
libegl1-mesa-dev,
libxrender-dev,
libgtest-dev,
libgmock-dev
libgmock-dev,
qtbase5-dev <!nodtk5>,
qtbase5-private-dev <!nodtk5>,
libqt5xdg-dev <!nodtk5>,
libdtkgui-dev (>=5.6.13) <!nodtk5>,
libdtkwidget-dev <!nodtk5>,
libqt5x11extras5-dev <!nodtk5>,
libqt5svg5-dev <!nodtk5>,
libqt5xdgiconloader-dev <!nodtk5>,
qt6-base-dev <!nodtk6>,
qt6-base-private-dev <!nodtk6>,
libdtk6gui-dev <!nodtk6>,
libdtk6widget-dev <!nodtk6>,
qt6-svg-dev <!nodtk6>
Standards-Version: 3.9.8

Package: dde-qt5integration
Architecture: any
Provides: libqt5deepintheme-plugin
Conflicts: libqt5deepintheme-plugin
Depends: ${shlibs:Depends}, ${misc:Depends}, dde-qt5xcb-plugin
Description: Qt platform theme integration plugins for DDE
Build-Profiles: <!nodtk5>
Description: Qt platform theme integration plugins for DDE (DTK5 with Qt5)
Multiple Qt plugins to provide better Qt5 integration for DDE is included.

Package: dde-qt6integration
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Build-Profiles: <!nodtk6>
Description: Qt platform theme integration plugins for DDE (DTK6 with Qt6)
Multiple Qt plugins to provide better Qt6 integration for DDE is included.
4 changes: 4 additions & 0 deletions debian/dde-qt5integration.install
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
usr/lib/*/qt5/plugins/platformthemes/
usr/lib/*/qt5/plugins/styles/
usr/lib/*/qt5/plugins/iconengines/
usr/lib/*/qt5/plugins/imageformats/
4 changes: 4 additions & 0 deletions debian/dde-qt6integration.install
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
usr/lib/*/qt6/plugins/platformthemes/
usr/lib/*/qt6/plugins/styles/
usr/lib/*/qt6/plugins/iconengines/
usr/lib/*/qt6/plugins/imageformats/
55 changes: 55 additions & 0 deletions debian/rules
Original file line number Diff line number Diff line change
@@ -1,13 +1,68 @@
#!/usr/bin/make -f
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/default.mk

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

# 版本映射:x.y.z -> 5.y.z 和 6.y.z
DTK5_VERSION := $(shell echo $(DEB_VERSION_UPSTREAM) | sed -E 's/^[0-9]+(\.|[^0-9]|$$)/5\1/')
DTK6_VERSION := $(shell echo $(DEB_VERSION_UPSTREAM) | sed -E 's/^[0-9]+(\.|[^0-9]|$$)/6\1/')

# Build-Profiles 控制
BUILD_DTK5 := $(if $(filter nodtk5,$(DEB_BUILD_PROFILES)),OFF,ON)
BUILD_DTK6 := $(if $(filter nodtk6,$(DEB_BUILD_PROFILES)),OFF,ON)

%:
dh $@

override_dh_auto_configure:
ifeq ($(BUILD_DTK5),ON)
mkdir -p build5
QT_SELECT=qt5 dh_auto_configure --builddirectory=build5 -- \
$(DEB_CMAKE_EXTRA_FLAGS) \
-DBUILD_TESTING=OFF \
-DDTK5=ON
endif
ifeq ($(BUILD_DTK6),ON)
mkdir -p build6
dh_auto_configure --builddirectory=build6 -- \
$(DEB_CMAKE_EXTRA_FLAGS) \
-DBUILD_TESTING=OFF \
-DDTK5=OFF
endif

override_dh_auto_build:
ifeq ($(BUILD_DTK5),ON)
QT_SELECT=qt5 dh_auto_build --builddirectory=build5
endif
ifeq ($(BUILD_DTK6),ON)
dh_auto_build --builddirectory=build6
endif

override_dh_auto_install:
ifeq ($(BUILD_DTK5),ON)
QT_SELECT=qt5 dh_auto_install --builddirectory=build5
endif
ifeq ($(BUILD_DTK6),ON)
dh_auto_install --builddirectory=build6
endif

override_dh_shlibdeps:
dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info

override_dh_auto_test:
ifeq ($(BUILD_DTK5),ON)
QT_SELECT=qt5 dh_auto_test --builddirectory=build5
endif
ifeq ($(BUILD_DTK6),ON)
dh_auto_test --builddirectory=build6
endif

override_dh_auto_clean:
dh_auto_clean --builddirectory=build5
dh_auto_clean --builddirectory=build6
rm -rf build5 build6
2 changes: 1 addition & 1 deletion iconengineplugins/diconengine/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,5 @@ dtk_add_plugin(
HEADERS
DEPENDENCIES
Qt${QT_VERSION_MAJOR}::GuiPrivate
Dtk${VERSION_SUFFIX}::Gui
Dtk${DTK_NAME_SUFFIX}::Gui
)
2 changes: 1 addition & 1 deletion iconengineplugins/svgiconengine/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,6 @@ dtk_add_plugin(
qsvgiconengine.h
DEPENDENCIES
Qt${QT_VERSION_MAJOR}::GuiPrivate
Dtk${VERSION_SUFFIX}::Gui
Dtk${DTK_NAME_SUFFIX}::Gui
Qt${QT_VERSION_MAJOR}::Concurrent
)
2 changes: 1 addition & 1 deletion imageformatplugins/dci/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,5 @@ dtk_add_plugin(
HEADERS
qdciiohandler.h
DEPENDENCIES
Dtk${VERSION_SUFFIX}::Gui
Dtk${DTK_NAME_SUFFIX}::Gui
)
2 changes: 1 addition & 1 deletion imageformatplugins/svg/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,5 @@ dtk_add_plugin(
HEADERS
qsvgiohandler.h
DEPENDENCIES
Dtk${VERSION_SUFFIX}::Gui
Dtk${DTK_NAME_SUFFIX}::Gui
)
2 changes: 1 addition & 1 deletion platformthemeplugin/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ dtk_add_plugin(
icons/deepin-theme-plugin-icons.qrc
deepin-theme-plugin.qrc
DEPENDENCIES
Dtk${VERSION_SUFFIX}::Gui
Dtk${DTK_NAME_SUFFIX}::Gui
${QT_LIBS}
PkgConfig::Deps
DEFINITIONS
Expand Down
2 changes: 1 addition & 1 deletion styleplugins/chameleon/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ dtk_add_plugin(
common.h
dstyleanimation.h
DEPENDENCIES
Dtk${VERSION_SUFFIX}::Widget
Dtk${DTK_NAME_SUFFIX}::Widget
Qt${QT_VERSION_MAJOR}::CorePrivate
Qt${QT_VERSION_MAJOR}::GuiPrivate
Qt${QT_VERSION_MAJOR}::WidgetsPrivate
Expand Down
2 changes: 1 addition & 1 deletion styles/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,5 @@ add_executable(gallery
styles.qrc
)

target_link_libraries(gallery PRIVATE Dtk${VERSION_SUFFIX}::Widget)
target_link_libraries(gallery PRIVATE Dtk${DTK_NAME_SUFFIX}::Widget)
set_target_properties(gallery PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
10 changes: 7 additions & 3 deletions tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -27,16 +27,19 @@ target_compile_options(unit-tests PRIVATE
-g
-fno-access-control
-Wall
-fsanitize=address
-fsanitize-recover=address
-O0
)

target_link_options(unit-tests PRIVATE
-fsanitize=address
-fsanitize-recover=address
)

if (CMAKE_BUILD_TYPE STREQUAL "Debug")
target_compile_options(unit-tests PRIVATE -fsanitize=address)
target_link_options(unit-tests PRIVATE -fsanitize=address)
endif()

target_link_libraries(unit-tests PRIVATE
GTest::GTest
GTest::gmock
Expand All @@ -46,7 +49,6 @@ target_link_options(unit-tests PRIVATE
dsvg
qdeepin
chameleon
asan
)

target_compile_definitions(unit-tests PRIVATE
Expand All @@ -64,3 +66,5 @@ target_include_directories(unit-tests PRIVATE
${CMAKE_SOURCE_DIR}/styleplugins/chameleon
${CMAKE_SOURCE_DIR}/platformthemeplugin
)

add_test(NAME unit-tests COMMAND unit-tests)
Loading