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: 15 additions & 13 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,11 @@

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 "define project version")
file(READ "${CMAKE_CURRENT_SOURCE_DIR}/VERSION" FILE_VERSION)
string(STRIP "${FILE_VERSION}" FILE_VERSION)

project(qt5platform-plugins
VERSION ${DTK_VERSION}
VERSION ${FILE_VERSION}
DESCRIPTION "DTK platform plugin module"
HOMEPAGE_URL "https://github.com/linuxdeepin/qt5platform-plugins"
LANGUAGES CXX C
Expand All @@ -22,15 +21,19 @@ endif ()
include(GNUInstallDirs)
include(CMakePackageConfigHelpers)

if("${PROJECT_VERSION_MAJOR}" STREQUAL "5")
set(QT_VERSION_MAJOR "5")
elseif("${PROJECT_VERSION_MAJOR}" STREQUAL "6")
set(QT_VERSION_MAJOR "6")
set(DTK_VERSION_MAJOR "6")
option(DTK5 "Build DTK5." ON)
if(DTK5)
set(DTK_VERSION_MAJOR "5")
else()
message(SEND_ERROR "not support Prject Version ${PROJECT_VERSION}.")
set(DTK_VERSION_MAJOR "6")
endif()
message(${PROJECT_VERSION_MAJOR})

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})

message(STATUS "Building DTK${DTK_VERSION_MAJOR} (Qt${QT_VERSION_MAJOR}) version: ${DTK_VERSION}")

set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
Expand All @@ -48,11 +51,10 @@ endif ()
set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/plugins/platforms)

add_subdirectory(xcb)
if("${PROJECT_VERSION_MAJOR}" STREQUAL "5")
if(DTK5)
add_subdirectory(wayland)
endif()
if(BUILD_TESTING)
enable_testing()
add_subdirectory(tests)
endif()
message(${PROJECT_VERSION_MAJOR})
4 changes: 2 additions & 2 deletions archlinux/PKGBUILD
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ build() {
cmake . -GNinja \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
-DQT_XCB_PRIVATE_HEADERS=/usr/include/qtxcb-private
-DQT_XCB_PRIVATE_HEADERS=/usr/include/qtxcb-private \
-DDTK5=ON
ninja
}

Expand Down
66 changes: 53 additions & 13 deletions debian/control
Original file line number Diff line number Diff line change
@@ -1,17 +1,48 @@
Source: dde-qt5platform-plugins
Section: devel
Priority: optional
Maintainer: Deepin Packages Builder <packages@deepin.com>
Build-Depends: debhelper (>=9), qtbase5-dev, qtbase5-private-dev,
pkg-config, libqt5x11extras5-dev, libxcb-xkb-dev, libxcb-render-util0-dev,
libxcb-image0-dev, libxcb-icccm4-dev, libxcb-keysyms1-dev, libegl1-mesa-dev,
libmtdev-dev, libxkbcommon-x11-dev, libdbus-1-dev, libqt5opengl5-dev,
libudev-dev, libxrender-dev,libxi-dev, libsm-dev, libxcb-xinerama0-dev,
libfontconfig1-dev, libglib2.0-dev, libxcb-damage0-dev,
libxcb-composite0-dev, libcairo2-dev, libkf5wayland-dev, libdwayland-dev,
qtwayland5-private-dev | libqt5waylandclient5-dev,
libwayland-dev, libxcb-xinput-dev, libxcb-util-dev | libxcb-util0-dev,
libx11-xcb-dev, libxcb-sync-dev, libxcb-randr0-dev, cmake, libgtest-dev, libgmock-dev, libdtkcommon-dev(>=5.6.16)
Maintainer: Shanshan Ye <yeshanshan@uniontech.com>
Build-Depends: debhelper (>=9),
cmake,
pkg-config,
libgtest-dev,
libgmock-dev,
libdtkcommon-dev(>=5.6.16),
qtbase5-dev <!nodtk5>,
qtbase5-private-dev <!nodtk5>,
libqt5x11extras5-dev <!nodtk5>,
libqt5opengl5-dev <!nodtk5>,
qtwayland5-private-dev | libqt5waylandclient5-dev <!nodtk5>,
qt6-base-dev <!nodtk6>,
qt6-base-private-dev <!nodtk6>,
libxcb-cursor-dev <!nodtk6>,
libxcb-xkb-dev,
libxcb-render-util0-dev,
libxcb-image0-dev,
libxcb-icccm4-dev,
libxcb-keysyms1-dev,
libegl1-mesa-dev,
libmtdev-dev,
libxkbcommon-x11-dev,
libdbus-1-dev,
libudev-dev,
libxrender-dev,
libxi-dev,
libsm-dev,
libxcb-xinerama0-dev,
libfontconfig1-dev,
libglib2.0-dev,
libxcb-damage0-dev,
libxcb-composite0-dev,
libcairo2-dev,
libkf5wayland-dev <!nodtk5>,
libdwayland-dev <!nodtk5>,
libwayland-dev,
libxcb-xinput-dev,
libxcb-util-dev | libxcb-util0-dev,
libx11-xcb-dev,
libxcb-sync-dev,
libxcb-randr0-dev
Standards-Version: 3.9.8

Package: dde-qt5xcb-plugin
Expand All @@ -21,11 +52,20 @@ Conflicts: libqt5dxcb-plugin, qt5dxcb-plugin
Breaks:dde-qt5integration (<< 0.2.8.1)
Replaces: qt5dxcb-plugin
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: Qt platform plugins
Build-Profiles: <!nodtk5>
Description: Qt platform plugins (DTK5 with Qt5)
Qt platform plugins for DDE.

Package: dde-qt5wayland-plugin
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, qtwayland5
Description: Qt platform plugins
Build-Profiles: <!nodtk5>
Description: Qt platform plugins (DTK5 with Qt5)
Qt platform plugins for DDE.

Package: dde-qt6xcb-plugin
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Build-Profiles: <!nodtk6>
Description: Qt platform plugins (DTK6 with Qt6)
Qt platform plugins for DDE (Qt6 version).
1 change: 1 addition & 0 deletions debian/dde-qt6xcb-plugin.install
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
usr/lib/*/qt6/plugins/platforms/libdxcb.so
53 changes: 52 additions & 1 deletion debian/rules
Original file line number Diff line number Diff line change
@@ -1,13 +1,64 @@
#!/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

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

%:
dh $@
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_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_shlibdeps:
dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info

override_dh_auto_clean:
dh_auto_clean --builddirectory=build5
dh_auto_clean --builddirectory=build6
rm -rf build5 build6
9 changes: 7 additions & 2 deletions tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,11 @@ include(${CMAKE_SOURCE_DIR}/xcb/linux.cmake)

add_definitions(-DPLUGIN_OUTPUT_PATH=\"${LIBRARY_OUTPUT_PATH}/..\")

target_compile_options(${PROJECT_NAME} PRIVATE -fno-access-control -fsanitize=address)
target_link_options(${PROJECT_NAME} PRIVATE -fsanitize=address)
target_compile_options(${PROJECT_NAME} PRIVATE -fno-access-control)
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
target_compile_options(${PROJECT_NAME} PRIVATE -fsanitize=address)
target_link_options(${PROJECT_NAME} PRIVATE -fsanitize=address)
endif ()
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
target_compile_options(${PROJECT_NAME} PRIVATE -fprofile-instr-generate -ftest-coverage)
endif()
Expand Down Expand Up @@ -68,3 +71,5 @@ if(${QT_VERSION_MAJOR} STREQUAL "5")
else()
target_link_libraries(${PROJECT_NAME} PRIVATE Qt6::OpenGL Qt6::OpenGLPrivate Qt6::XcbQpaPrivate)
endif()

add_test(NAME ${PROJECT_NAME} COMMAND ${PROJECT_NAME})
Loading