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
74 changes: 35 additions & 39 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,36 +1,33 @@
cmake_minimum_required(VERSION 3.10)

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(DtkDeclarative
VERSION "${DTK_VERSION}"
VERSION ${FILE_VERSION}
DESCRIPTION "DTK Declarative module"
HOMEPAGE_URL "https://github.com/linuxdeepin/dtkdeclarative"
LANGUAGES CXX
)

if (${PROJECT_VERSION_MAJOR} STREQUAL "5")
set(QT_DEFAULT_MAJOR_VERSION "5")
set(QT_VERSION_MAJOR "5")
set(EnableQt5 on)
set(EnableDtk5 on)
set(EnableQt6 off)
set(EnableDtk6 off)
elseif(${PROJECT_VERSION_MAJOR} STREQUAL "6")
set(QT_DEFAULT_MAJOR_VERSION "6")
set(QT_VERSION_MAJOR "6")
set(DTK_VERSION_MAJOR "6")
set(EnableQt5 off)
set(EnableDtk5 off)
set(EnableQt6 on)
set(EnableDtk6 on)
option(DTK5 "Build DTK5." ON)
if(DTK5)
set(DTK_VERSION_MAJOR "5")
set(DTK_NAME_SUFFIX "")
else()
message(FATAL_ERROR "Only support DTK_VERSION is 5 or 6")
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})
set(QT_DEFAULT_MAJOR_VERSION ${QT_VERSION_MAJOR})

set(ENABLE_COV OFF CACHE BOOL "Generate coverage info")
set(LIB_NAME dtk${DTK_VERSION_MAJOR}declarative)
set(LIB_NAME dtk${DTK_NAME_SUFFIX}declarative)

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
Expand All @@ -50,9 +47,9 @@ include(DtkBuildConfig)
set(BUILD_DOCS ON CACHE BOOL "Generate doxygen-based documentation")

set(LIB_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}" CACHE STRING "Library install path")
set(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_INCLUDEDIR}/dtk${PROJECT_VERSION_MAJOR}/DDeclarative" CACHE STRING "Headers install path")
set(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_INCLUDEDIR}/dtk${DTK_VERSION_MAJOR}/DDeclarative" CACHE STRING "Headers install path")
set(TEMPLATE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/share/qtcreator/templates/wizards/projects/qml${DTK_VERSION_MAJOR}-app-template" CACHE STRING "Directory to install QtCreator template")
set(CONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/Dtk${DTK_VERSION_MAJOR}Declarative" CACHE STRING "CMake config file install directory")
set(CONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/Dtk${DTK_NAME_SUFFIX}Declarative" CACHE STRING "CMake config file install directory")
set(PKGCONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/pkgconfig" CACHE STRING "Directory to install pkg-config file")
set(MKSPECS_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/qt${QT_VERSION_MAJOR}/mkspecs/modules" CACHE STRING "Qt pri module install directory")
set(QML_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/qt${QT_VERSION_MAJOR}/qml" CACHE STRING "Qml plugin install directory")
Expand All @@ -67,12 +64,11 @@ if (${QT_VERSION_MAJOR} STREQUAL "6")
endif()
endif()

if(EnableQt5)
if(DTK5)
if(TARGET Qt::QuickControls2 AND TARGET Qt::QuickControls2Private)
set(USE_QQuickStylePluginPrivate ON)
endif()
endif()
if(EnableQt6)
else()
if(TARGET Qt6::QuickControls2 AND TARGET Qt6::QuickControls2Private)
set(USE_QQuickStylePluginPrivate ON)
endif()
Expand All @@ -88,7 +84,7 @@ else ()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Ofast")
endif ()

set(DDECLARATIVE_TRANSLATIONS_DIR "dtk${PROJECT_VERSION_MAJOR}/DDeclarative/translations" CACHE STRING "DDeclarative translations directory")
set(DDECLARATIVE_TRANSLATIONS_DIR "dtk${DTK_VERSION_MAJOR}/DDeclarative/translations" CACHE STRING "DDeclarative translations directory")
set(DDECLARATIVE_TRANSLATIONS_PATH "share/${DDECLARATIVE_TRANSLATIONS_DIR}")
set(TRANSLATIONS_INSTALL_PATH "${DDECLARATIVE_TRANSLATIONS_PATH}")

Expand All @@ -98,11 +94,10 @@ set(PLUGIN_NAME dtkdeclarativeplugin)
set(STYLE_PLUGIN_NAME qtquickcontrolschameleonstyleplugin)
set(PLUGIN_OUTPUT_DIR ${PROJECT_BINARY_DIR}/plugins)

if(EnableQt5)
if(DTK5)
add_subdirectory(src)
add_subdirectory(qmlplugin)
endif()
if(EnableQt6)
else()
add_subdirectory(qt6)
endif()
add_subdirectory(chameleon)
Expand All @@ -113,16 +108,17 @@ if(BUILD_DOCS)
endif()

if(BUILD_TESTING)
enable_testing()
add_subdirectory(tests)
add_dependencies(unit-test ${PLUGIN_NAME} ${STYLE_PLUGIN_NAME})
if(EnableQt6)
if(NOT DTK5)
add_dependencies(unit-test dtkdeclarativeprivatesplugin dtkdeclarativesettingsplugin)
endif()
endif()

# Install wizards template
set(QML_TEMPLATE_QTVERSION_INDEX 0)
if(EnableQt5)
if(DTK5)
set(QML_TEMPLATE_QTVERSION_INDEX 3)
endif()
configure_package_config_file(
Expand All @@ -135,20 +131,20 @@ install(DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/misc/qml-app-template/" DESTINATION

configure_package_config_file(
"${CMAKE_CURRENT_LIST_DIR}/misc/DtkDeclarativeConfig.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/Dtk${DTK_VERSION_MAJOR}DeclarativeConfig.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/Dtk${DTK_NAME_SUFFIX}DeclarativeConfig.cmake"
INSTALL_DESTINATION "${CONFIG_INSTALL_DIR}"
)
write_basic_package_version_file(
"${CMAKE_CURRENT_BINARY_DIR}/Dtk${DTK_VERSION_MAJOR}DeclarativeConfigVersion.cmake"
VERSION ${VERSION}
"${CMAKE_CURRENT_BINARY_DIR}/Dtk${DTK_NAME_SUFFIX}DeclarativeConfigVersion.cmake"
VERSION ${DTK_VERSION}
COMPATIBILITY SameMajorVersion
)
# Install cmake config file
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/Dtk${DTK_VERSION_MAJOR}DeclarativeConfig.cmake" DESTINATION "${CONFIG_INSTALL_DIR}")
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/Dtk${DTK_VERSION_MAJOR}DeclarativeConfigVersion.cmake" DESTINATION "${CONFIG_INSTALL_DIR}")
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/Dtk${DTK_NAME_SUFFIX}DeclarativeConfig.cmake" DESTINATION "${CONFIG_INSTALL_DIR}")
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/Dtk${DTK_NAME_SUFFIX}DeclarativeConfigVersion.cmake" DESTINATION "${CONFIG_INSTALL_DIR}")
# Install pkg-config file
configure_file("${PROJECT_SOURCE_DIR}/misc/dtkdeclarative.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/dtk${DTK_VERSION_MAJOR}declarative.pc" @ONLY)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/dtk${DTK_VERSION_MAJOR}declarative.pc" DESTINATION "${PKGCONFIG_INSTALL_DIR}")
configure_file("${PROJECT_SOURCE_DIR}/misc/dtkdeclarative.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/dtk${DTK_NAME_SUFFIX}declarative.pc" @ONLY)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/dtk${DTK_NAME_SUFFIX}declarative.pc" DESTINATION "${PKGCONFIG_INSTALL_DIR}")
# Install qmake module config file
configure_file("${CMAKE_CURRENT_LIST_DIR}/misc/qt_lib_dtkdeclarative.pri.in" "${CMAKE_CURRENT_BINARY_DIR}/qt_lib_dtkdeclarative.pri" @ONLY)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/qt_lib_dtkdeclarative.pri" DESTINATION "${MKSPECS_INSTALL_DIR}")
2 changes: 1 addition & 1 deletion archlinux/PKGBUILD
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ build() {
-DQCH_INSTALL_DESTINATION=share/doc/qt \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release
-DDTK5=ON
}

package() {
Expand Down
8 changes: 4 additions & 4 deletions chameleon/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
set(PLUGIN_NAME ${STYLE_PLUGIN_NAME})

find_package(Dtk${DTK_VERSION_MAJOR}Gui REQUIRED)
find_package(Dtk${DTK_NAME_SUFFIX}Gui REQUIRED)
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS
Qml
Quick
QuickControls2 REQUIRED
)
if(EnableQt5)
if(DTK5)
find_package(Qt${QT_VERSION_MAJOR}QuickCompiler)
endif()

Expand Down Expand Up @@ -59,7 +59,7 @@ set(SRC_FILES
qtquickcontrols2chameleonstyleplugin.h qtquickcontrols2chameleonstyleplugin.cpp
)

if(EnableQt5)
if(DTK5)
file(GLOB _qml_files ${QML_FILES})
set(TARGETPATH "QtQuick/Controls.2/Chameleon")
set(PLUGIN_INSTALL_DIR "${QML_INSTALL_DIR}/${TARGETPATH}")
Expand Down Expand Up @@ -109,7 +109,7 @@ if(EnableQt5)
)
endif()

if(EnableQt6)
if(NOT DTK5)
qt_add_qml_module(${PLUGIN_NAME}
URI "Chameleon"
VERSION "1.0"
Expand Down
125 changes: 105 additions & 20 deletions debian/control
Original file line number Diff line number Diff line change
@@ -1,61 +1,146 @@
Source: dtkdeclarative
Section: libs
Priority: optional
Maintainer: Deepin Packages Builder <packages@deepin.com>
Maintainer: Shanshan Ye <yeshanshan@uniontech.com>
Build-Depends:
debhelper-compat ( =12),
debhelper-compat (= 12),
cmake,
qtdeclarative5-dev,
qtbase5-dev-tools,
qtquickcontrols2-5-dev,
libdtkgui-dev,
libdtkcore-dev,
qtdeclarative5-private-dev,
qtbase5-private-dev,
pkg-kde-tools,
libgtest-dev,
doxygen,
qttools5-dev-tools,
qttools5-dev,
doxyqml,
libdtkcommon-dev,
qtdeclarative5-dev <!nodtk5>,
qtbase5-dev-tools <!nodtk5>,
qtquickcontrols2-5-dev <!nodtk5>,
libdtkgui-dev <!nodtk5>,
libdtkcore-dev <!nodtk5>,
qtdeclarative5-private-dev <!nodtk5>,
qtbase5-private-dev <!nodtk5>,
qttools5-dev-tools <!nodtk5>,
qttools5-dev <!nodtk5>,
qt6-declarative-dev <!nodtk6>,
qt6-base-dev-tools <!nodtk6>,
libqt6quickcontrols2-6 <!nodtk6>,
libdtk6gui-dev <!nodtk6>,
libdtk6core-dev <!nodtk6>,
qt6-declarative-private-dev <!nodtk6>,
qt6-base-private-dev <!nodtk6>,
qt6-tools-dev-tools <!nodtk6>,
qt6-tools-dev <!nodtk6>,
qt6-shadertools-dev <!nodtk6>,
doxygen <!nodoc>,
doxyqml <!nodoc>,
Standards-Version: 3.9.8
Homepage: http://www.deepin.org

Package: qml6-module-qtquick-controls2-styles-chameleon
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends},
qml6-module-qtquick,
qml6-module-qtquick-controls,
qml6-module-qtquick-shapes,
qml6-module-qt5compat-graphicaleffects,
qml6-module-qtqml-workerscript,
qml6-module-qtquick-templates,
qml6-module-qtquick-effects,
libdtk6declarative( =${binary:Version})
Build-Profiles: <!nodtk6>
Description: Deepin Tool Kit Qt Quick Controls 2 QML module (DTK6 with Qt6)
Dtkdeclarative is base library of Deepin Qt/QtQuick applications.
.
This package is built for DTK6 with Qt6.

Package: libdtk6declarative
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends},
libdtk6core
Multi-Arch: same
Build-Profiles: <!nodtk6>
Description: Deepin Tool Kit Declarative library (DTK6 with Qt6)
Dtkdeclarative is base library of Deepin Qt/QtQuick applications.
.
This package contains the shared libraries.
This package is built for DTK6 with Qt6.

Package: libdtk6declarative-dev
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends},
libdtk6declarative( =${binary:Version}),
libdtk6core-dev,
libdtk6gui-dev,
libdtkcommon-dev,
qt6-base-dev,
qt6-declarative-dev
Build-Profiles: <!nodtk6>
Description: Deepin Tool Kit Declarative Devel library (DTK6 with Qt6)
Dtkdeclarative is base library of Deepin Qt/QtQuick applications.
.
This package contains the header files and shared libraries of DtkDeclarative.
This package is built for DTK6 with Qt6.

Package: libdtk6declarative-doc
Architecture: any
Depends: ${misc:Depends}
Build-Profiles: <!nodtk6 !nodoc>
Description: Deepin Tool Kit Declarative Devel library (DTK6 with Qt6 Document)
Dtkdeclarative is base library of Deepin Qt/QtQuick applications.

Package: dtk6-exhibition
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends},
libdtk6declarative( =${binary:Version}),
qml6-module-qtquick-controls2-styles-chameleon( =${binary:Version})
Build-Profiles: <!nodtk6>
Description: Deepin Tool Kit QML Controls example (DTK6 with Qt6)
This package contains an application.
.
This package is built for DTK6 with Qt6.

Package: qml-module-qtquick-controls2-styles-chameleon
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, qml-module-qtquick-shapes (>= 5.11.3), qml-module-qtgraphicaleffects,
libdtkdeclarative5( =${binary:Version})
Build-Profiles: <!nodtk5>
Description: Deepin Tool Kit Qt Quick Controls 2 QML module
Dtkdeclarative is base library of Deepin Qt/QtQuick applications.

Package: libdtkdeclarative5
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends},
libdtkcore5 (>= 5.6.12)
libdtkcore5 (>= 5.6.12)
Multi-Arch: same
Description: Deepin Tool Kit Gui library
Build-Profiles: <!nodtk5>
Description: Deepin Tool Kit Declarative library
Dtkdeclarative is base library of Deepin Qt/QtQuick applications.
.
This package contains the shared libraries.

Package: libdtkdeclarative-dev
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, libdtkdeclarative5( =${binary:Version})
Description: Deepin Tool Kit Gui Devel library
Depends: ${shlibs:Depends}, ${misc:Depends},
libdtkdeclarative5( =${binary:Version}),
libdtkcore-dev,
libdtkgui-dev,
libdtkcommon-dev,
qtbase5-dev,
qtdeclarative5-dev
Build-Profiles: <!nodtk5>
Description: Deepin Tool Kit Declarative Devel library
Dtkdeclarative is base library of Deepin Qt/QtQuick applications.
.
This package contains the header files and shared libraries of DtkDeclarative

Package: libdtkdeclarative-doc
Architecture: any
Depends: ${misc:Depends}
Description: Deepin Tool Kit Gui Devel library (Document)
Build-Profiles: <!nodtk5 !nodoc>
Description: Deepin Tool Kit Declarative Devel library (Document)
Dtkdeclarative is base library of Deepin Qt/QtQuick applications.

Package: dtk-exhibition
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends},
libdtkdeclarative5( =${binary:Version}),
qml-module-qtquick-controls2-styles-chameleon( =${binary:Version})
Description: Deepin Tool Kit QML Controls example.
This package contains a applicatioin.
Build-Profiles: <!nodtk5>
Description: Deepin Tool Kit QML Controls example
This package contains an application.
1 change: 1 addition & 0 deletions debian/dtk6-exhibition.install
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
usr/lib/*/*/DDeclarative/*
6 changes: 6 additions & 0 deletions debian/libdtk6declarative-dev.install
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
usr/lib/*/libdtk6declarative.so
usr/include/dtk6/
usr/lib/*/pkgconfig/dtk6declarative.pc
usr/lib/*/cmake/Dtk6Declarative/*.cmake
usr/lib/*/qt6/mkspecs/*
usr/share/qtcreator/templates/wizards/projects/qml6-app-template/*
1 change: 1 addition & 0 deletions debian/libdtk6declarative-doc.install
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
usr/share/qt6/doc/*
3 changes: 3 additions & 0 deletions debian/libdtk6declarative.install
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
usr/lib/*/libdtk6declarative.so.*
usr/lib/*/qt6/qml/org/deepin/dtk/*
usr/share/dtk6/DDeclarative/translations/*.qm
10 changes: 5 additions & 5 deletions debian/libdtkdeclarative-dev.install
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
usr/lib/*/lib*.so
usr/include
usr/lib/*/pkgconfig/*.pc
usr/lib/*/cmake/*/*.cmake
usr/lib/*/libdtkdeclarative.so
usr/include/dtk5/
usr/lib/*/pkgconfig/dtkdeclarative.pc
usr/lib/*/cmake/DtkDeclarative/*.cmake
usr/lib/*/qt5/mkspecs/*
usr/share/qtcreator/*
usr/share/qtcreator/templates/wizards/projects/qml5-app-template/*
4 changes: 2 additions & 2 deletions debian/libdtkdeclarative5.install
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
usr/lib/*/lib*.so.*
usr/lib/*/libdtkdeclarative.so.*
usr/lib/*/qt5/qml/org/deepin/dtk/*
usr/share/*/*/translations/*.qm
usr/share/dtk5/DDeclarative/translations/*.qm
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
usr/lib/*/qt6/qml/Chameleon/*
Loading