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
26 changes: 16 additions & 10 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,22 +1,28 @@
cmake_minimum_required(VERSION 3.25)

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

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")
# 引入 DTK5/DTK6 构建选项
option(DTK5 "Build DTK5." ON)
if(DTK5)
set(DTK_VERSION_MAJOR "5")
set(DTK_NAME_SUFFIX "") # DTK5 产品名称后缀为空
else()
message(SEND_ERROR "not support Prject Version ${PROJECT_VERSION}.")
set(DTK_VERSION_MAJOR "6")
set(DTK_NAME_SUFFIX "6") # DTK6 产品名称后缀为 "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})

include(dtkgui.cmake)
2 changes: 1 addition & 1 deletion docs/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ set (DOXYGEN_GENERATE_HTML "YES" CACHE STRING "Doxygen HTML output")
set (DOXYGEN_GENERATE_XML "YES" CACHE STRING "Doxygen XML output")
set (DOXYGEN_GENERATE_QHP "YES" CACHE STRING "Doxygen QHP output")
set (DOXYGEN_FILE_PATTERNS *.cpp *.h *.zh_CN.md *.zh_CN.dox CACHE STRING "Doxygen File Patterns")
set (DOXYGEN_PROJECT_NUMBER ${CMAKE_PROJECT_VERSION} CACHE STRING "") # Should be the same as this project is using.
set (DOXYGEN_PROJECT_NUMBER ${DTK_VERSION} CACHE STRING "") # Should be the same as this project is using.
set (DOXYGEN_EXTRACT_STATIC YES)
set (DOXYGEN_OUTPUT_LANGUAGE "Chinese" CACHE STRING "Doxygen Output Language")
set (DOXYGEN_IMAGE_PATH ${CMAKE_CURRENT_LIST_DIR}/images/)
Expand Down
24 changes: 12 additions & 12 deletions dtkgui.cmake
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
message(STATUS "Current Qt Version: ${QT_VERSION_MAJOR}")
message(STATUS "Compiling with DTK major version: ${DTK_VERSION_MAJOR}, Qt major version: ${QT_VERSION_MAJOR}")

set(LIB_NAME dtk${DTK_VERSION_MAJOR}gui)
set(LIB_NAME dtk${DTK_NAME_SUFFIX}gui)

# Set install path
if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
Expand Down Expand Up @@ -30,11 +30,11 @@ else()
set (BUILD_DOCS OFF CACHE BOOL "Generate doxygen-based documentation")
endif()

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

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

# Generate cmake config file
configure_package_config_file(misc/DtkGuiConfig.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/Dtk${DTK_VERSION_MAJOR}GuiConfig.cmake
${CMAKE_CURRENT_BINARY_DIR}/Dtk${DTK_NAME_SUFFIX}GuiConfig.cmake
INSTALL_DESTINATION "${CONFIG_INSTALL_DIR}"
PATH_VARS TOOL_INSTALL_DIR
)
# Generate cmake version file
write_basic_package_version_file(
"${CMAKE_CURRENT_BINARY_DIR}/Dtk${DTK_VERSION_MAJOR}GuiConfigVersion.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/Dtk${DTK_NAME_SUFFIX}GuiConfigVersion.cmake"
VERSION ${DTK_VERSION}
COMPATIBILITY SameMajorVersion
)
# Install cmake config file and version file to CONFIG_INSTALL_DIR
install(FILES
${CMAKE_CURRENT_BINARY_DIR}/Dtk${DTK_VERSION_MAJOR}GuiConfig.cmake
${CMAKE_CURRENT_BINARY_DIR}/Dtk${DTK_VERSION_MAJOR}GuiConfigVersion.cmake
${CMAKE_CURRENT_BINARY_DIR}/Dtk${DTK_NAME_SUFFIX}GuiConfig.cmake
${CMAKE_CURRENT_BINARY_DIR}/Dtk${DTK_NAME_SUFFIX}GuiConfigVersion.cmake
DESTINATION "${CONFIG_INSTALL_DIR}"
)
# Install pkgconfig file
configure_file(misc/dtkgui.pc.in dtk${DTK_VERSION_MAJOR}gui.pc @ONLY)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/dtk${DTK_VERSION_MAJOR}gui.pc DESTINATION "${PKGCONFIG_INSTALL_DIR}")
configure_file(misc/dtkgui.pc.in dtk${DTK_NAME_SUFFIX}gui.pc @ONLY)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/dtk${DTK_NAME_SUFFIX}gui.pc DESTINATION "${PKGCONFIG_INSTALL_DIR}")
# Install pri module
configure_file(misc/qt_lib_dtkgui.pri.in qt_lib_dtkgui.pri @ONLY)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/qt_lib_dtkgui.pri DESTINATION "${MKSPECS_INSTALL_DIR}")
Expand Down Expand Up @@ -111,7 +111,7 @@ install(FILES DtkGuis DESTINATION "${INCLUDE_INSTALL_DIR}")
# Find common dependencies
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Gui DBus Network)
find_package(PkgConfig REQUIRED)
find_package(Dtk${DTK_VERSION_MAJOR} REQUIRED Core)
find_package(Dtk${DTK_NAME_SUFFIX} REQUIRED Core)
find_package(DtkBuildHelper REQUIRED)
pkg_check_modules(librsvg REQUIRED IMPORTED_TARGET librsvg-2.0)

Expand Down
9 changes: 4 additions & 5 deletions examples/animation-dci/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
find_package(Dtk${DTK_VERSION_MAJOR}Core REQUIRED)
find_package(Dtk${DTK_NAME_SUFFIX}Core REQUIRED)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets)

set(BIN_NAME animation-dci)
set(TARGET ${BIN_NAME}${DTK_VERSION_MAJOR})

set(TARGET ${BIN_NAME}${DTK_NAME_SUFFIX})
add_executable(${TARGET}
main.cpp
test_dci_icon.qrc
Expand All @@ -14,6 +13,6 @@ add_executable(${TARGET}
target_link_libraries(
${TARGET} PRIVATE
Qt${QT_VERSION_MAJOR}::Widgets
dtk${DTK_VERSION_MAJOR}gui
dtk${DTK_NAME_SUFFIX}gui
)
set_target_properties(${TARGET_NAME} PROPERTIES OUTPUT_NAME ${BIN_NAME})
set_target_properties(${TARGET} PROPERTIES OUTPUT_NAME ${BIN_NAME})
12 changes: 6 additions & 6 deletions misc/DtkGuiConfig.cmake.in
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
@PACKAGE_INIT@

include(CMakeFindDependencyMacro)
find_dependency(Dtk@DTK_VERSION_MAJOR@Core)
find_dependency(Dtk@DTK_NAME_SUFFIX@Core)
find_dependency(Qt@QT_VERSION_MAJOR@Network)
find_dependency(Qt@QT_VERSION_MAJOR@Gui)

include(${CMAKE_CURRENT_LIST_DIR}/Dtk@DTK_VERSION_MAJOR@GuiTargets.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/Dtk@DTK_NAME_SUFFIX@GuiTargets.cmake)

set(DtkGui_LIBRARIES Dtk@DTK_VERSION_MAJOR@::Gui)
get_target_property(DtkGui_INCLUDE_DIRS Dtk@DTK_VERSION_MAJOR@::Gui INTERFACE_INCLUDE_DIRECTORIES)
get_target_property(DtkGui_LIBRARY_DIRS Dtk@DTK_VERSION_MAJOR@::Gui INTERFACE_LINK_DIRECTORIES)
set(DtkGui_LIBRARIES Dtk@DTK_NAME_SUFFIX@::Gui)
get_target_property(DtkGui_INCLUDE_DIRS Dtk@DTK_NAME_SUFFIX@::Gui INTERFACE_INCLUDE_DIRECTORIES)
get_target_property(DtkGui_LIBRARY_DIRS Dtk@DTK_NAME_SUFFIX@::Gui INTERFACE_LINK_DIRECTORIES)
set(DtkGui_TOOL_DIRS "@PACKAGE_TOOL_INSTALL_DIR@")

check_required_components(Dtk@DTK_VERSION_MAJOR@Gui)
check_required_components(Dtk@DTK_NAME_SUFFIX@Gui)

# Keep deprecated variables for compatibility
set(DTKGUI_INCLUDE_DIR ${DtkGui_INCLUDE_DIRS})
Expand Down
10 changes: 5 additions & 5 deletions misc/dtkgui.pc.in
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ libdir=${prefix}/@LIBRARY_INSTALL_DIR@
includedir=${prefix}/@INCLUDE_INSTALL_DIR@
tooldir=${prefix}/@PACKAGE_TOOL_INSTALL_DIR@

Name: dtk@DTK_VERSION_MAJOR@gui
Description: Deepin Tool Kit dtkgui header files
Version: @PROJECT_VERSION@
Libs: -L${libdir} -ldtk@DTK_VERSION_MAJOR@gui
Name: dtk@DTK_NAME_SUFFIX@gui
Description: Development ToolKit Gui Devel Library
Version: @DTK_VERSION@
Libs: -L${libdir} -ldtk@DTK_NAME_SUFFIX@gui
Cflags: -I${includedir}
Requires: dtk@DTK_VERSION_MAJOR@core
Requires: dtk@DTK_NAME_SUFFIX@core
10 changes: 5 additions & 5 deletions misc/qt_lib_dtkgui.pri.in
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
QT.dtkgui.VERSION = @PROJECT_VERSION@
QT.dtkgui.MAJOR_VERSION = @PROJECT_VERSION_MAJOR@
QT.dtkgui.MINOR_VERSION = @PROJECT_VERSION_MINOR@
QT.dtkgui.PATCH_VERSION = @PROJECT_VERSION_PATCH@
QT.dtkgui.VERSION = @DTK_VERSION@
QT.dtkgui.MAJOR_VERSION = @DTK_VERSION_MAJOR@
QT.dtkgui.MINOR_VERSION = @DTK_VERSION_MINOR@
QT.dtkgui.PATCH_VERSION = @DTK_VERSION_PATCH@
QT.dtkgui.name = dtkgui
QT.dtkgui.module = dtk@DTK_VERSION_MAJOR@gui
QT.dtkgui.module = dtk@DTK_NAME_SUFFIX@gui
QT.dtkgui.tools = @CMAKE_INSTALL_PREFIX@/@TOOL_INSTALL_DIR@
QT.dtkgui.libs = @CMAKE_INSTALL_PREFIX@/@LIBRARY_INSTALL_DIR@
QT.dtkgui.includes = @CMAKE_INSTALL_PREFIX@/@INCLUDE_INSTALL_DIR@
Expand Down
10 changes: 5 additions & 5 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ target_link_libraries(${LIB_NAME}
PUBLIC
Qt${QT_VERSION_MAJOR}::Gui
Qt${QT_VERSION_MAJOR}::Network
Dtk${DTK_VERSION_MAJOR}::Core
Dtk${DTK_NAME_SUFFIX}::Core
PRIVATE
Qt${QT_VERSION_MAJOR}::GuiPrivate
Qt${QT_VERSION_MAJOR}::CorePrivate
Expand Down Expand Up @@ -80,8 +80,8 @@ if(NOT DTK_DISABLE_LIBXDG)
endif()

set_target_properties(${LIB_NAME} PROPERTIES
VERSION ${CMAKE_PROJECT_VERSION}
SOVERSION ${CMAKE_PROJECT_VERSION_MAJOR}
VERSION ${DTK_VERSION}
SOVERSION ${DTK_VERSION_MAJOR}
EXPORT_NAME Gui
)

Expand All @@ -93,8 +93,8 @@ target_link_directories(${LIB_NAME} INTERFACE
$<INSTALL_INTERFACE:${LIBRARY_INSTALL_DIR}>
)

install(TARGETS ${LIB_NAME} EXPORT Dtk${DTK_VERSION_MAJOR}GuiTargets DESTINATION "${LIBRARY_INSTALL_DIR}")
install(EXPORT Dtk${DTK_VERSION_MAJOR}GuiTargets NAMESPACE Dtk${DTK_VERSION_MAJOR}:: FILE Dtk${DTK_VERSION_MAJOR}GuiTargets.cmake DESTINATION "${CONFIG_INSTALL_DIR}")
install(TARGETS ${LIB_NAME} EXPORT Dtk${DTK_NAME_SUFFIX}GuiTargets DESTINATION "${LIBRARY_INSTALL_DIR}")
install(EXPORT Dtk${DTK_NAME_SUFFIX}GuiTargets NAMESPACE Dtk${DTK_NAME_SUFFIX}:: FILE Dtk${DTK_NAME_SUFFIX}GuiTargets.cmake DESTINATION "${CONFIG_INSTALL_DIR}")
install(DIRECTORY ../include/util/ DESTINATION "${INCLUDE_INSTALL_DIR}" FILES_MATCHING PATTERN "*")
install(DIRECTORY ../include/DtkGui/ DESTINATION "${INCLUDE_INSTALL_DIR}" FILES_MATCHING PATTERN "*")
install(DIRECTORY ../include/global/ DESTINATION "${INCLUDE_INSTALL_DIR}" FILES_MATCHING PATTERN "*")
Expand Down
10 changes: 7 additions & 3 deletions tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,12 @@ add_executable(${BIN_NAME}

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

target_compile_options(${BIN_NAME} PRIVATE -fno-access-control -fsanitize=address)
target_link_options(${BIN_NAME} PRIVATE -fsanitize=address)
target_compile_options(${BIN_NAME} PRIVATE -fno-access-control)

if (CMAKE_BUILD_TYPE STREQUAL "Debug")
target_compile_options(${BIN_NAME} PRIVATE -fsanitize=address)
target_link_options(${BIN_NAME} PRIVATE -fsanitize=address)
endif()

target_link_libraries(${BIN_NAME} PRIVATE
Qt${QT_VERSION_MAJOR}::Gui
Expand All @@ -42,7 +46,7 @@ target_link_libraries(${BIN_NAME} PRIVATE
Qt${QT_VERSION_MAJOR}::DBus
Qt${QT_VERSION_MAJOR}::Network
Qt${QT_VERSION_MAJOR}::Test
Dtk${DTK_VERSION_MAJOR}::Core
Dtk${DTK_NAME_SUFFIX}::Core
PkgConfig::librsvg
GTest::GTest
${LIB_NAME}
Expand Down
4 changes: 2 additions & 2 deletions tests/platform-plugin-test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ if("${QT_VERSION_MAJOR}" STRLESS "6")
find_package(Qt${QT_VERSION_MAJOR} REQUIRED EventDispatcherSupport ServiceSupport)
endif()

find_package(Dtk${DTK_VERSION_MAJOR}Core REQUIRED)
find_package(Dtk${DTK_NAME_SUFFIX}Core REQUIRED)

file(GLOB plugin_SRC
minimal.json
Expand All @@ -21,7 +21,7 @@ target_link_libraries(${test-plugin} PRIVATE
Qt${QT_VERSION_MAJOR}::CorePrivate
Qt${QT_VERSION_MAJOR}::Gui
Qt${QT_VERSION_MAJOR}::GuiPrivate
Dtk${DTK_VERSION_MAJOR}::Core)
Dtk${DTK_NAME_SUFFIX}::Core)

if("${QT_VERSION_MAJOR}" STRLESS "6")
target_link_libraries(${test-plugin} PRIVATE
Expand Down
2 changes: 1 addition & 1 deletion tools/dci-icon-theme/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
set(BIN_NAME dci-icon-theme)
set(TARGET_NAME ${BIN_NAME}${DTK_VERSION_MAJOR})
set(TARGET_NAME ${BIN_NAME}${DTK_NAME_SUFFIX})

find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Concurrent REQUIRED)

Expand Down
2 changes: 1 addition & 1 deletion tools/dci-iconfinder/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
set(BIN_NAME dci-iconfinder)
set(TARGET_NAME ${BIN_NAME}${DTK_VERSION_MAJOR})
set(TARGET_NAME ${BIN_NAME}${DTK_NAME_SUFFIX})

add_executable(${TARGET_NAME}
main.cpp
Expand Down
2 changes: 1 addition & 1 deletion tools/dci-image-converter/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
set(BIN_NAME dci-image-converter)
set(TARGET_NAME ${BIN_NAME}${DTK_VERSION_MAJOR})
set(TARGET_NAME ${BIN_NAME}${DTK_NAME_SUFFIX})

add_executable(${TARGET_NAME}
main.cpp
Expand Down
2 changes: 1 addition & 1 deletion tools/dde-kwin-debug/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
set(BIN_NAME dde-kwin-bug)
set(TARGET_NAME ${BIN_NAME}${DTK_VERSION_MAJOR})
set(TARGET_NAME ${BIN_NAME}${DTK_NAME_SUFFIX})

pkg_check_modules(X11 IMPORTED_TARGET REQUIRED x11)

Expand Down
2 changes: 1 addition & 1 deletion tools/deepin-gui-settings/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
set(BIN_NAME deepin-gui-settings)
set(TARGET_NAME ${BIN_NAME}${DTK_VERSION_MAJOR})
set(TARGET_NAME ${BIN_NAME}${DTK_NAME_SUFFIX})

find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets)

Expand Down
2 changes: 1 addition & 1 deletion tools/image-handler/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
set(BIN image-handler)
set(TARGET_NAME ${BIN}${DTK_VERSION_MAJOR})
set(TARGET_NAME ${BIN}${DTK_NAME_SUFFIX})

add_executable(${TARGET_NAME}
main.cpp
Expand Down
Loading