Skip to content

Commit 5a76c0f

Browse files
sync: from linuxdeepin/dtkgui
Synchronize source files from linuxdeepin/dtkgui. Source-pull-request: linuxdeepin/dtkgui#358
1 parent af63da9 commit 5a76c0f

16 files changed

Lines changed: 70 additions & 60 deletions

File tree

CMakeLists.txt

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,29 @@
11
cmake_minimum_required(VERSION 3.25)
22

3-
file(READ "${CMAKE_CURRENT_SOURCE_DIR}/VERSION" DTK_FILE_VERSION)
4-
string(STRIP "${DTK_FILE_VERSION}" DTK_FILE_VERSION)
5-
set(DTK_VERSION "${DTK_FILE_VERSION}" CACHE STRING "define project version")
3+
file(READ "${CMAKE_CURRENT_SOURCE_DIR}/VERSION" FILE_VERSION)
4+
string(STRIP "${FILE_VERSION}" FILE_VERSION)
5+
66
project(DtkGui
7-
VERSION ${DTK_VERSION}
7+
VERSION ${FILE_VERSION}
88
DESCRIPTION "DTK Gui module"
99
HOMEPAGE_URL "https://github.com/linuxdeepin/dtkgui"
1010
LANGUAGES CXX C
1111
)
1212

13-
if("${PROJECT_VERSION_MAJOR}" STREQUAL "5")
14-
set(QT_VERSION_MAJOR "5")
15-
elseif("${PROJECT_VERSION_MAJOR}" STREQUAL "6")
16-
set(QT_VERSION_MAJOR "6")
17-
set(DTK_VERSION_MAJOR "6")
13+
# 引入 DTK5/DTK6 构建选项
14+
option(DTK5 "Build DTK5." ON)
15+
if(DTK5)
16+
set(DTK_VERSION_MAJOR "5")
17+
set(DTK_NAME_SUFFIX "") # DTK5 产品名称后缀为空
1818
else()
19-
message(SEND_ERROR "not support Prject Version ${PROJECT_VERSION}.")
19+
set(DTK_VERSION_MAJOR "6")
20+
set(DTK_NAME_SUFFIX "6") # DTK6 产品名称后缀为 "6"
2021
endif()
2122

23+
set(DTK_VERSION_MINOR ${PROJECT_VERSION_MINOR})
24+
set(DTK_VERSION_PATCH ${PROJECT_VERSION_PATCH})
25+
set(DTK_VERSION "${DTK_VERSION_MAJOR}.${DTK_VERSION_MINOR}.${DTK_VERSION_PATCH}")
26+
# 官方约定:DTK5 使用 Qt5,DTK6 使用 Qt6
27+
set(QT_VERSION_MAJOR ${DTK_VERSION_MAJOR})
28+
2229
include(dtkgui.cmake)

docs/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ set (DOXYGEN_GENERATE_HTML "YES" CACHE STRING "Doxygen HTML output")
88
set (DOXYGEN_GENERATE_XML "YES" CACHE STRING "Doxygen XML output")
99
set (DOXYGEN_GENERATE_QHP "YES" CACHE STRING "Doxygen QHP output")
1010
set (DOXYGEN_FILE_PATTERNS *.cpp *.h *.zh_CN.md *.zh_CN.dox CACHE STRING "Doxygen File Patterns")
11-
set (DOXYGEN_PROJECT_NUMBER ${CMAKE_PROJECT_VERSION} CACHE STRING "") # Should be the same as this project is using.
11+
set (DOXYGEN_PROJECT_NUMBER ${DTK_VERSION} CACHE STRING "") # Should be the same as this project is using.
1212
set (DOXYGEN_EXTRACT_STATIC YES)
1313
set (DOXYGEN_OUTPUT_LANGUAGE "Chinese" CACHE STRING "Doxygen Output Language")
1414
set (DOXYGEN_IMAGE_PATH ${CMAKE_CURRENT_LIST_DIR}/images/)

dtkgui.cmake

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
message(STATUS "Current Qt Version: ${QT_VERSION_MAJOR}")
1+
message(STATUS "Compiling with DTK major version: ${DTK_VERSION_MAJOR}, Qt major version: ${QT_VERSION_MAJOR}")
22

3-
set(LIB_NAME dtk${DTK_VERSION_MAJOR}gui)
3+
set(LIB_NAME dtk${DTK_NAME_SUFFIX}gui)
44

55
# Set install path
66
if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
@@ -30,11 +30,11 @@ else()
3030
set (BUILD_DOCS OFF CACHE BOOL "Generate doxygen-based documentation")
3131
endif()
3232

33-
set(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_INCLUDEDIR}/dtk${PROJECT_VERSION_MAJOR}/DGui")
34-
set(TOOL_INSTALL_DIR "${CMAKE_INSTALL_LIBEXECDIR}/dtk${PROJECT_VERSION_MAJOR}/DGui/bin")
33+
set(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_INCLUDEDIR}/dtk${DTK_VERSION_MAJOR}/DGui")
34+
set(TOOL_INSTALL_DIR "${CMAKE_INSTALL_LIBEXECDIR}/dtk${DTK_VERSION_MAJOR}/DGui/bin")
3535
set(LIBRARY_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}")
3636
set(MKSPECS_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/qt${QT_VERSION_MAJOR}/mkspecs/modules" CACHE STRING "Install dir for qt pri module files")
37-
set(CONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/Dtk${DTK_VERSION_MAJOR}Gui")
37+
set(CONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/Dtk${DTK_NAME_SUFFIX}Gui")
3838
set(PKGCONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
3939

4040
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -Wall -Wextra -fopenmp")
@@ -59,25 +59,25 @@ endforeach()
5959

6060
# Generate cmake config file
6161
configure_package_config_file(misc/DtkGuiConfig.cmake.in
62-
${CMAKE_CURRENT_BINARY_DIR}/Dtk${DTK_VERSION_MAJOR}GuiConfig.cmake
62+
${CMAKE_CURRENT_BINARY_DIR}/Dtk${DTK_NAME_SUFFIX}GuiConfig.cmake
6363
INSTALL_DESTINATION "${CONFIG_INSTALL_DIR}"
6464
PATH_VARS TOOL_INSTALL_DIR
6565
)
6666
# Generate cmake version file
6767
write_basic_package_version_file(
68-
"${CMAKE_CURRENT_BINARY_DIR}/Dtk${DTK_VERSION_MAJOR}GuiConfigVersion.cmake"
68+
"${CMAKE_CURRENT_BINARY_DIR}/Dtk${DTK_NAME_SUFFIX}GuiConfigVersion.cmake"
6969
VERSION ${DTK_VERSION}
7070
COMPATIBILITY SameMajorVersion
7171
)
7272
# Install cmake config file and version file to CONFIG_INSTALL_DIR
7373
install(FILES
74-
${CMAKE_CURRENT_BINARY_DIR}/Dtk${DTK_VERSION_MAJOR}GuiConfig.cmake
75-
${CMAKE_CURRENT_BINARY_DIR}/Dtk${DTK_VERSION_MAJOR}GuiConfigVersion.cmake
74+
${CMAKE_CURRENT_BINARY_DIR}/Dtk${DTK_NAME_SUFFIX}GuiConfig.cmake
75+
${CMAKE_CURRENT_BINARY_DIR}/Dtk${DTK_NAME_SUFFIX}GuiConfigVersion.cmake
7676
DESTINATION "${CONFIG_INSTALL_DIR}"
7777
)
7878
# Install pkgconfig file
79-
configure_file(misc/dtkgui.pc.in dtk${DTK_VERSION_MAJOR}gui.pc @ONLY)
80-
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/dtk${DTK_VERSION_MAJOR}gui.pc DESTINATION "${PKGCONFIG_INSTALL_DIR}")
79+
configure_file(misc/dtkgui.pc.in dtk${DTK_NAME_SUFFIX}gui.pc @ONLY)
80+
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/dtk${DTK_NAME_SUFFIX}gui.pc DESTINATION "${PKGCONFIG_INSTALL_DIR}")
8181
# Install pri module
8282
configure_file(misc/qt_lib_dtkgui.pri.in qt_lib_dtkgui.pri @ONLY)
8383
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/qt_lib_dtkgui.pri DESTINATION "${MKSPECS_INSTALL_DIR}")
@@ -111,7 +111,7 @@ install(FILES DtkGuis DESTINATION "${INCLUDE_INSTALL_DIR}")
111111
# Find common dependencies
112112
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Gui DBus Network)
113113
find_package(PkgConfig REQUIRED)
114-
find_package(Dtk${DTK_VERSION_MAJOR} REQUIRED Core)
114+
find_package(Dtk${DTK_NAME_SUFFIX} REQUIRED Core)
115115
find_package(DtkBuildHelper REQUIRED)
116116
pkg_check_modules(librsvg REQUIRED IMPORTED_TARGET librsvg-2.0)
117117

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
set(CMAKE_AUTOMOC ON)
22
set(CMAKE_AUTORCC ON)
3-
find_package(Dtk${DTK_VERSION_MAJOR}Core REQUIRED)
3+
find_package(Dtk${DTK_NAME_SUFFIX}Core REQUIRED)
44
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets)
55

66
set(BIN_NAME animation-dci)
7-
set(TARGET ${BIN_NAME}${DTK_VERSION_MAJOR})
8-
7+
set(TARGET ${BIN_NAME}${DTK_NAME_SUFFIX})
98
add_executable(${TARGET}
109
main.cpp
1110
test_dci_icon.qrc
@@ -14,6 +13,6 @@ add_executable(${TARGET}
1413
target_link_libraries(
1514
${TARGET} PRIVATE
1615
Qt${QT_VERSION_MAJOR}::Widgets
17-
dtk${DTK_VERSION_MAJOR}gui
16+
dtk${DTK_NAME_SUFFIX}gui
1817
)
19-
set_target_properties(${TARGET_NAME} PROPERTIES OUTPUT_NAME ${BIN_NAME})
18+
set_target_properties(${TARGET} PROPERTIES OUTPUT_NAME ${BIN_NAME})

misc/DtkGuiConfig.cmake.in

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
@PACKAGE_INIT@
22

33
include(CMakeFindDependencyMacro)
4-
find_dependency(Dtk@DTK_VERSION_MAJOR@Core)
4+
find_dependency(Dtk@DTK_NAME_SUFFIX@Core)
55
find_dependency(Qt@QT_VERSION_MAJOR@Network)
66
find_dependency(Qt@QT_VERSION_MAJOR@Gui)
77

8-
include(${CMAKE_CURRENT_LIST_DIR}/Dtk@DTK_VERSION_MAJOR@GuiTargets.cmake)
8+
include(${CMAKE_CURRENT_LIST_DIR}/Dtk@DTK_NAME_SUFFIX@GuiTargets.cmake)
99

10-
set(DtkGui_LIBRARIES Dtk@DTK_VERSION_MAJOR@::Gui)
11-
get_target_property(DtkGui_INCLUDE_DIRS Dtk@DTK_VERSION_MAJOR@::Gui INTERFACE_INCLUDE_DIRECTORIES)
12-
get_target_property(DtkGui_LIBRARY_DIRS Dtk@DTK_VERSION_MAJOR@::Gui INTERFACE_LINK_DIRECTORIES)
10+
set(DtkGui_LIBRARIES Dtk@DTK_NAME_SUFFIX@::Gui)
11+
get_target_property(DtkGui_INCLUDE_DIRS Dtk@DTK_NAME_SUFFIX@::Gui INTERFACE_INCLUDE_DIRECTORIES)
12+
get_target_property(DtkGui_LIBRARY_DIRS Dtk@DTK_NAME_SUFFIX@::Gui INTERFACE_LINK_DIRECTORIES)
1313
set(DtkGui_TOOL_DIRS "@PACKAGE_TOOL_INSTALL_DIR@")
1414

15-
check_required_components(Dtk@DTK_VERSION_MAJOR@Gui)
15+
check_required_components(Dtk@DTK_NAME_SUFFIX@Gui)
1616

1717
# Keep deprecated variables for compatibility
1818
set(DTKGUI_INCLUDE_DIR ${DtkGui_INCLUDE_DIRS})

misc/dtkgui.pc.in

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ libdir=${prefix}/@LIBRARY_INSTALL_DIR@
44
includedir=${prefix}/@INCLUDE_INSTALL_DIR@
55
tooldir=${prefix}/@PACKAGE_TOOL_INSTALL_DIR@
66

7-
Name: dtk@DTK_VERSION_MAJOR@gui
8-
Description: Deepin Tool Kit dtkgui header files
9-
Version: @PROJECT_VERSION@
10-
Libs: -L${libdir} -ldtk@DTK_VERSION_MAJOR@gui
7+
Name: dtk@DTK_NAME_SUFFIX@gui
8+
Description: Development ToolKit Gui Devel Library
9+
Version: @DTK_VERSION@
10+
Libs: -L${libdir} -ldtk@DTK_NAME_SUFFIX@gui
1111
Cflags: -I${includedir}
12-
Requires: dtk@DTK_VERSION_MAJOR@core
12+
Requires: dtk@DTK_NAME_SUFFIX@core

misc/qt_lib_dtkgui.pri.in

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
QT.dtkgui.VERSION = @PROJECT_VERSION@
2-
QT.dtkgui.MAJOR_VERSION = @PROJECT_VERSION_MAJOR@
3-
QT.dtkgui.MINOR_VERSION = @PROJECT_VERSION_MINOR@
4-
QT.dtkgui.PATCH_VERSION = @PROJECT_VERSION_PATCH@
1+
QT.dtkgui.VERSION = @DTK_VERSION@
2+
QT.dtkgui.MAJOR_VERSION = @DTK_VERSION_MAJOR@
3+
QT.dtkgui.MINOR_VERSION = @DTK_VERSION_MINOR@
4+
QT.dtkgui.PATCH_VERSION = @DTK_VERSION_PATCH@
55
QT.dtkgui.name = dtkgui
6-
QT.dtkgui.module = dtk@DTK_VERSION_MAJOR@gui
6+
QT.dtkgui.module = dtk@DTK_NAME_SUFFIX@gui
77
QT.dtkgui.tools = @CMAKE_INSTALL_PREFIX@/@TOOL_INSTALL_DIR@
88
QT.dtkgui.libs = @CMAKE_INSTALL_PREFIX@/@LIBRARY_INSTALL_DIR@
99
QT.dtkgui.includes = @CMAKE_INSTALL_PREFIX@/@INCLUDE_INSTALL_DIR@

src/CMakeLists.txt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ target_link_libraries(${LIB_NAME}
4141
PUBLIC
4242
Qt${QT_VERSION_MAJOR}::Gui
4343
Qt${QT_VERSION_MAJOR}::Network
44-
Dtk${DTK_VERSION_MAJOR}::Core
44+
Dtk${DTK_NAME_SUFFIX}::Core
4545
PRIVATE
4646
Qt${QT_VERSION_MAJOR}::GuiPrivate
4747
Qt${QT_VERSION_MAJOR}::CorePrivate
@@ -80,8 +80,8 @@ if(NOT DTK_DISABLE_LIBXDG)
8080
endif()
8181

8282
set_target_properties(${LIB_NAME} PROPERTIES
83-
VERSION ${CMAKE_PROJECT_VERSION}
84-
SOVERSION ${CMAKE_PROJECT_VERSION_MAJOR}
83+
VERSION ${DTK_VERSION}
84+
SOVERSION ${DTK_VERSION_MAJOR}
8585
EXPORT_NAME Gui
8686
)
8787

@@ -93,8 +93,8 @@ target_link_directories(${LIB_NAME} INTERFACE
9393
$<INSTALL_INTERFACE:${LIBRARY_INSTALL_DIR}>
9494
)
9595

96-
install(TARGETS ${LIB_NAME} EXPORT Dtk${DTK_VERSION_MAJOR}GuiTargets DESTINATION "${LIBRARY_INSTALL_DIR}")
97-
install(EXPORT Dtk${DTK_VERSION_MAJOR}GuiTargets NAMESPACE Dtk${DTK_VERSION_MAJOR}:: FILE Dtk${DTK_VERSION_MAJOR}GuiTargets.cmake DESTINATION "${CONFIG_INSTALL_DIR}")
96+
install(TARGETS ${LIB_NAME} EXPORT Dtk${DTK_NAME_SUFFIX}GuiTargets DESTINATION "${LIBRARY_INSTALL_DIR}")
97+
install(EXPORT Dtk${DTK_NAME_SUFFIX}GuiTargets NAMESPACE Dtk${DTK_NAME_SUFFIX}:: FILE Dtk${DTK_NAME_SUFFIX}GuiTargets.cmake DESTINATION "${CONFIG_INSTALL_DIR}")
9898
install(DIRECTORY ../include/util/ DESTINATION "${INCLUDE_INSTALL_DIR}" FILES_MATCHING PATTERN "*")
9999
install(DIRECTORY ../include/DtkGui/ DESTINATION "${INCLUDE_INSTALL_DIR}" FILES_MATCHING PATTERN "*")
100100
install(DIRECTORY ../include/global/ DESTINATION "${INCLUDE_INSTALL_DIR}" FILES_MATCHING PATTERN "*")

tests/CMakeLists.txt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,12 @@ add_executable(${BIN_NAME}
3232

3333
add_dependencies(${BIN_NAME} ${test-plugin})
3434

35-
target_compile_options(${BIN_NAME} PRIVATE -fno-access-control -fsanitize=address)
36-
target_link_options(${BIN_NAME} PRIVATE -fsanitize=address)
35+
target_compile_options(${BIN_NAME} PRIVATE -fno-access-control)
36+
37+
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
38+
target_compile_options(${BIN_NAME} PRIVATE -fsanitize=address)
39+
target_link_options(${BIN_NAME} PRIVATE -fsanitize=address)
40+
endif()
3741

3842
target_link_libraries(${BIN_NAME} PRIVATE
3943
Qt${QT_VERSION_MAJOR}::Gui
@@ -42,7 +46,7 @@ target_link_libraries(${BIN_NAME} PRIVATE
4246
Qt${QT_VERSION_MAJOR}::DBus
4347
Qt${QT_VERSION_MAJOR}::Network
4448
Qt${QT_VERSION_MAJOR}::Test
45-
Dtk${DTK_VERSION_MAJOR}::Core
49+
Dtk${DTK_NAME_SUFFIX}::Core
4650
PkgConfig::librsvg
4751
GTest::GTest
4852
${LIB_NAME}

tests/platform-plugin-test/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ if("${QT_VERSION_MAJOR}" STRLESS "6")
66
find_package(Qt${QT_VERSION_MAJOR} REQUIRED EventDispatcherSupport ServiceSupport)
77
endif()
88

9-
find_package(Dtk${DTK_VERSION_MAJOR}Core REQUIRED)
9+
find_package(Dtk${DTK_NAME_SUFFIX}Core REQUIRED)
1010

1111
file(GLOB plugin_SRC
1212
minimal.json
@@ -21,7 +21,7 @@ target_link_libraries(${test-plugin} PRIVATE
2121
Qt${QT_VERSION_MAJOR}::CorePrivate
2222
Qt${QT_VERSION_MAJOR}::Gui
2323
Qt${QT_VERSION_MAJOR}::GuiPrivate
24-
Dtk${DTK_VERSION_MAJOR}::Core)
24+
Dtk${DTK_NAME_SUFFIX}::Core)
2525

2626
if("${QT_VERSION_MAJOR}" STRLESS "6")
2727
target_link_libraries(${test-plugin} PRIVATE

0 commit comments

Comments
 (0)