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: 16 additions & 12 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
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(DtkWidget
VERSION ${DTK_VERSION}
VERSION ${FILE_VERSION}
DESCRIPTION "DTK Widget module"
HOMEPAGE_URL "https://github.com/linuxdeepin/dtkwidget"
LANGUAGES CXX C
Expand All @@ -19,13 +18,18 @@ endif()
include(GNUInstallDirs)
include(CMakePackageConfigHelpers)

if("${PROJECT_VERSION_MAJOR}" STREQUAL "5")
set(QT_VERSION_MAJOR 5)
include(dtkwidget.cmake)
elseif("${PROJECT_VERSION_MAJOR}" STREQUAL "6")
set(QT_VERSION_MAJOR "6")
set(DTK_VERSION_MAJOR "6")
include(dtkwidget.cmake)
option(DTK5 "Build DTK5." ON)
if(DTK5)
set(DTK_VERSION_MAJOR "5")
set(DTK_NAME_SUFFIX "")
else()
message(SEND_ERROR "not support Prject Version ${PROJECT_VERSION}.")
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})

include(dtkwidget.cmake)
2 changes: 1 addition & 1 deletion docs/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,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
14 changes: 7 additions & 7 deletions dtkwidget.cmake
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
set(LIBNAME dtk${DTK_VERSION_MAJOR}widget)
set(DtkWidget Dtk${DTK_VERSION_MAJOR}Widget)
set(LIB_NAME dtk${DTK_NAME_SUFFIX}widget)
set(DtkWidget Dtk${DTK_NAME_SUFFIX}Widget)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
Expand All @@ -16,10 +16,10 @@ set(BUILD_VERSION "0" CACHE STRING "buildversion")
set(BUILD_PLUGINS ON CACHE BOOL "Build plugin and plugin example")

set(INCLUDE_INSTALL_DIR
"${CMAKE_INSTALL_INCLUDEDIR}/dtk${PROJECT_VERSION_MAJOR}/DWidget"
"${CMAKE_INSTALL_INCLUDEDIR}/dtk${DTK_VERSION_MAJOR}/DWidget"
)
set(TOOL_INSTALL_DIR
"${CMAKE_INSTALL_LIBDIR}/dtk${PROJECT_VERSION_MAJOR}/DWidget/bin"
"${CMAKE_INSTALL_LIBEXECDIR}/dtk${DTK_VERSION_MAJOR}/DWidget/bin"
)
set(LIBRARY_INSTALL_DIR
"${CMAKE_INSTALL_LIBDIR}"
Expand All @@ -37,7 +37,7 @@ set(PKGCONFIG_INSTALL_DIR
CACHE STRING "Install directory for pkgconfig files"
)

find_package(Dtk${DTK_VERSION_MAJOR} REQUIRED COMPONENTS Core Gui)
find_package(Dtk${DTK_NAME_SUFFIX} REQUIRED COMPONENTS Core Gui)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core
Network
Concurrent
Expand Down Expand Up @@ -143,8 +143,8 @@ write_basic_package_version_file(
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${DtkWidget}Config.cmake DESTINATION ${CONFIG_CMAKE_INSTALL_DIR})
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${DtkWidget}ConfigVersion.cmake DESTINATION ${CONFIG_CMAKE_INSTALL_DIR})

configure_file(misc/DtkWidget.pc.in ${LIBNAME}.pc @ONLY)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${LIBNAME}.pc DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
configure_file(misc/DtkWidget.pc.in ${LIB_NAME}.pc @ONLY)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${LIB_NAME}.pc DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")

configure_file(misc/qt_lib_DtkWidget.pri.in qt_lib_DtkWidget.pri @ONLY)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/qt_lib_DtkWidget.pri DESTINATION "${MKSPECS_INSTALL_DIR}")
2 changes: 1 addition & 1 deletion examples/PrintPreviewSettingsPlugin/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@ add_library(${PLUGIN_NAME} SHARED
)

target_link_libraries(${PLUGIN_NAME} PRIVATE
${LIBNAME}
${LIB_NAME}
)
4 changes: 2 additions & 2 deletions examples/collections/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,9 @@ target_link_libraries(${BIN_NAME} PRIVATE
Qt${QT_VERSION_MAJOR}::Widgets
Qt${QT_VERSION_MAJOR}::Gui
Qt${QT_VERSION_MAJOR}::GuiPrivate
${LIBNAME}
${LIB_NAME}
)
install(
TARGETS ${BIN_NAME}
DESTINATION "${CMAKE_INSTALL_LIBDIR}/dtk${PROJECT_VERSION_MAJOR}/DWidget/examples/"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/dtk${DTK_VERSION_MAJOR}/DWidget/examples/"
)
12 changes: 6 additions & 6 deletions misc/DtkWidget.pc.in
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ exec_prefix=${prefix}
libdir=${prefix}/@LIBRARY_INSTALL_DIR@
includedir=${prefix}/@INCLUDE_INSTALL_DIR@

Name: dtk@DTK_VERSION_MAJOR@widget
Description: Deepin Tool Kit dtkwidget header files
Version: @CMAKE_PROJECT_VERSION@
Libs: -L${libdir} -ldtk@DTK_VERSION_MAJOR@widget
Cflags: -I${includedir}
Requires: dtk@DTK_VERSION_MAJOR@core dtk@DTK_VERSION_MAJOR@gui Qt@QT_VERSION_MAJOR@Core Qt@QT_VERSION_MAJOR@Widgets Qt@QT_VERSION_MAJOR@DBus Qt@QT_VERSION_MAJOR@Network Qt@QT_VERSION_MAJOR@PrintSupport
Name: Dtk@DTK_NAME_SUFFIX@Widget
Description: Deepin Tool Kit Widget library
Version: @DTK_VERSION@
Libs: -L${libdir} -ldtk@DTK_NAME_SUFFIX@widget
Cflags: -I${includedir}/dtk@DTK_VERSION_MAJOR@/DWidget
Requires: dtk@DTK_NAME_SUFFIX@core dtk@DTK_NAME_SUFFIX@gui Qt@QT_VERSION_MAJOR@Core Qt@QT_VERSION_MAJOR@Widgets Qt@QT_VERSION_MAJOR@DBus Qt@QT_VERSION_MAJOR@Network Qt@QT_VERSION_MAJOR@PrintSupport
12 changes: 6 additions & 6 deletions misc/DtkWidgetConfig.cmake.in
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
@PACKAGE_INIT@

include(CMakeFindDependencyMacro)
find_dependency(Dtk@DTK_VERSION_MAJOR@Core)
find_dependency(Dtk@DTK_VERSION_MAJOR@Gui)
find_dependency(Dtk@DTK_NAME_SUFFIX@Core)
find_dependency(Dtk@DTK_NAME_SUFFIX@Gui)
find_dependency(Qt@QT_VERSION_MAJOR@Core)
find_dependency(Qt@QT_VERSION_MAJOR@Widgets)
find_dependency(Qt@QT_VERSION_MAJOR@DBus)
find_dependency(Qt@QT_VERSION_MAJOR@Network)
find_dependency(Qt@QT_VERSION_MAJOR@PrintSupport)
include(${CMAKE_CURRENT_LIST_DIR}/Dtk@DTK_VERSION_MAJOR@WidgetTargets.cmake)
set(DtkWidget_LIBRARIES Dtk@DTK_VERSION_MAJOR@::Widget)
get_target_property(DtkWidget_INCLUDE_DIRS Dtk@DTK_VERSION_MAJOR@::Widget INTERFACE_INCLUDE_DIRECTORIES)
get_target_property(DtkWidget_LIBRARY_DIRS Dtk@DTK_VERSION_MAJOR@::Widget INTERFACE_LINK_DIRECTORIES)
include(${CMAKE_CURRENT_LIST_DIR}/Dtk@DTK_NAME_SUFFIX@WidgetTargets.cmake)
set(DtkWidget_LIBRARIES Dtk@DTK_NAME_SUFFIX@::Widget)
get_target_property(DtkWidget_INCLUDE_DIRS Dtk@DTK_NAME_SUFFIX@::Widget INTERFACE_INCLUDE_DIRECTORIES)
get_target_property(DtkWidget_LIBRARY_DIRS Dtk@DTK_NAME_SUFFIX@::Widget INTERFACE_LINK_DIRECTORIES)
set(DtkWidget_TOOL_DIRS "@PACKAGE_TOOL_INSTALL_DIR@")
check_required_components(DtkWidget)

Expand Down
12 changes: 6 additions & 6 deletions misc/qt_lib_DtkWidget.pri.in
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
QT.dtkwidget.VERSION = @PROJECT_VERSION@
QT.dtkwidget.MAJOR_VERSION = @PROJECT_VERSION_MAJOR@
QT.dtkwidget.MINOR_VERSION = @PROJECT_VERSION_MINOR@
QT.dtkwidget.PATCH_VERSION = @PROJECT_VERSION_PATCH@
QT.dtkwidget.name = dtkwidget
QT.dtkwidget.module = dtk@DTK_VERSION_MAJOR@widget
QT.dtkwidget.VERSION = @DTK_VERSION@
QT.dtkwidget.MAJOR_VERSION = @DTK_VERSION_MAJOR@
QT.dtkwidget.MINOR_VERSION = @DTK_VERSION_MINOR@
QT.dtkwidget.PATCH_VERSION = @DTK_VERSION_PATCH@
QT.dtkwidget.name = dtk@DTK_NAME_SUFFIX@widget
QT.dtkwidget.module = dtk@DTK_NAME_SUFFIX@widget
QT.dtkwidget.tools = @CMAKE_INSTALL_PREFIX@/@TOOL_INSTALL_DIR@
QT.dtkwidget.libs = @CMAKE_INSTALL_PREFIX@/@LIBRARY_INSTALL_DIR@
QT.dtkwidget.includes = @CMAKE_INSTALL_PREFIX@/@INCLUDE_INSTALL_DIR@
Expand Down
2 changes: 1 addition & 1 deletion plugin/dtkuidemo/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,5 @@ target_link_libraries(${DEMO} PRIVATE
Qt${QT_VERSION_MAJOR}::Core
Qt${QT_VERSION_MAJOR}::Gui
Qt${QT_VERSION_MAJOR}::GuiPrivate
${LIBNAME}
${LIB_NAME}
)
6 changes: 3 additions & 3 deletions plugin/dtkuiplugin/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ project(${UIPLUGIN} VERSION 1.0.0 LANGUAGES CXX)

find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS UiPlugin Gui)

set(LIB_DWIDGET ${LIBNAME})
set(LIB_DWIDGET ${LIB_NAME})

if (CMAKE_PROJECT_NAME STREQUAL ${UIPLUGIN})
message(STATUS "compile ${UIPLUGIN} individually")
Expand All @@ -16,8 +16,8 @@ if (CMAKE_PROJECT_NAME STREQUAL ${UIPLUGIN})
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
set(CMAKE_INSTALL_PREFIX /usr)
endif()
find_package(Dtk${DTK_VERSION_MAJOR} REQUIRED COMPONENT Widget)
set(LIB_DWIDGET Dtk${DTK_VERSION_MAJOR}::Widget)
find_package(Dtk${DTK_NAME_SUFFIX} REQUIRED COMPONENT Widget)
set(LIB_DWIDGET Dtk${DTK_NAME_SUFFIX}::Widget)
endif()

add_library(
Expand Down
34 changes: 17 additions & 17 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,29 +12,29 @@ include(widgets/widgets.cmake)

file(GLOB TS_FILES translations/*.ts)

add_library(${LIBNAME} SHARED
add_library(${LIB_NAME} SHARED
${WIDGETS}
${UTIL}
${PUBLIC_HEADERS}
)

if(QT_VERSION_MAJOR EQUAL 6)
qt_add_translations(${LIBNAME}
qt_add_translations(${LIB_NAME}
TS_FILES ${TS_FILES}
QM_FILES_OUTPUT_VARIABLE QM_FILES
LUPDATE_OPTIONS -no-ui-lines -locations none
)
else()
qt5_add_translation(QM_FILES ${TS_FILES})
add_custom_target(translations ALL DEPENDS ${QM_FILES})
target_sources(${LIBNAME} PRIVATE ${QM_FILES})
target_sources(${LIB_NAME} PRIVATE ${QM_FILES})
endif()

set(TRANSLATIONS_INSTALL_DIR
"dtk${PROJECT_VERSION_MAJOR}/DWidget/translations"
"dtk${DTK_VERSION_MAJOR}/DWidget/translations"
)

target_compile_definitions(${LIBNAME} PRIVATE
target_compile_definitions(${LIB_NAME} PRIVATE
SN_API_NOT_YET_FROZEN
DTK_NO_MULTIMEDIA
DWIDGET_TRANSLATIONS_DIR="${TRANSLATIONS_INSTALL_DIR}"
Expand All @@ -43,12 +43,12 @@ target_compile_definitions(${LIBNAME} PRIVATE
)

if(DTK_STATIC_TRANSLATION)
target_compile_definitions(${LIBNAME} PRIVATE
target_compile_definitions(${LIB_NAME} PRIVATE
DTK_STATIC_TRANSLATION
)
endif()

target_include_directories(${LIBNAME}
target_include_directories(${LIB_NAME}
PUBLIC
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include/DWidget>
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include/util>
Expand All @@ -60,15 +60,15 @@ INTERFACE
$<INSTALL_INTERFACE:${INCLUDE_INSTALL_DIR}>
)

target_link_libraries(${LIBNAME}
target_link_libraries(${LIB_NAME}
PUBLIC
Qt${QT_VERSION_MAJOR}::Widgets
Qt${QT_VERSION_MAJOR}::Network
Qt${QT_VERSION_MAJOR}::Core
Qt${QT_VERSION_MAJOR}::DBus
Qt${QT_VERSION_MAJOR}::PrintSupport
Dtk${DTK_VERSION_MAJOR}::Gui
Dtk${DTK_VERSION_MAJOR}::Core
Dtk${DTK_NAME_SUFFIX}::Gui
Dtk${DTK_NAME_SUFFIX}::Core
PRIVATE
Qt${QT_VERSION_MAJOR}::Concurrent
Qt${QT_VERSION_MAJOR}::GuiPrivate
Expand All @@ -82,34 +82,34 @@ PRIVATE
)

if("${QT_VERSION_MAJOR}" STREQUAL "5")
target_link_libraries(${LIBNAME} PRIVATE
target_link_libraries(${LIB_NAME} PRIVATE
PkgConfig::QGSettings
Qt5::X11Extras
)
endif()

target_link_directories(${LIBNAME} INTERFACE
target_link_directories(${LIB_NAME} INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
$<INSTALL_INTERFACE:${LIBRARY_INSTALL_DIR}>
)

set_target_properties(${LIBNAME}
set_target_properties(${LIB_NAME}
PROPERTIES
VERSION ${CMAKE_PROJECT_VERSION}
SOVERSION ${CMAKE_PROJECT_VERSION_MAJOR}
VERSION ${DTK_VERSION}
SOVERSION ${DTK_VERSION_MAJOR}
EXPORT_NAME Widget
PUBLIC_HEADER "${PUBLIC_HEADERS}"
)
install(
TARGETS ${LIBNAME}
TARGETS ${LIB_NAME}
EXPORT ${DtkWidget}Targets
DESTINATION ${LIBRARY_INSTALL_DIR}
PUBLIC_HEADER DESTINATION ${INCLUDE_INSTALL_DIR}
)

install(
EXPORT ${DtkWidget}Targets
NAMESPACE Dtk${DTK_VERSION_MAJOR}::
NAMESPACE Dtk${DTK_NAME_SUFFIX}::
FILE ${DtkWidget}Targets.cmake
DESTINATION "${CONFIG_CMAKE_INSTALL_DIR}"
)
Expand Down
13 changes: 8 additions & 5 deletions tests/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
set(BINNAME "ut-${LIBNAME}")
set(BINNAME "ut-${LIB_NAME}")

find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Test)
find_package(GTest REQUIRED)
Expand Down Expand Up @@ -143,8 +143,11 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
target_compile_options(${BINNAME} PRIVATE -fprofile-arcs -ftest-coverage)
endif()

target_compile_options(${BINNAME} PRIVATE -fno-access-control -fsanitize=address)
target_link_options(${BINNAME} PRIVATE -fsanitize=address)
target_compile_options(${BINNAME} PRIVATE -fno-access-control)
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
target_compile_options(${BINNAME} PRIVATE -fsanitize=address)
target_link_options(${BINNAME} PRIVATE -fsanitize=address)
endif()

target_include_directories(${BINNAME} PRIVATE
${PROJECT_SOURCE_DIR}/src/widgets
Expand Down Expand Up @@ -173,8 +176,8 @@ target_link_libraries(${BINNAME} PRIVATE
PkgConfig::Xi
PkgConfig::X11
PkgConfig::XcbUtil
Dtk${DTK_VERSION_MAJOR}::Gui
Dtk${DTK_VERSION_MAJOR}::Core
Dtk${DTK_NAME_SUFFIX}::Gui
Dtk${DTK_NAME_SUFFIX}::Core
GTest::GTest
gmock
pthread
Expand Down
8 changes: 4 additions & 4 deletions tools/svgc/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
set(TARGET_NAME dtk-svgc)
set(BIN_NAME ${TARGET_NAME}${DTK_VERSION_MAJOR})
set(TARGET_NAME dtk${DTK_NAME_SUFFIX}-svgc)
set(BIN_NAME ${TARGET_NAME})

find_package(Dtk${DTK_VERSION_MAJOR} REQUIRED COMPONENTS Gui)
find_package(Dtk${DTK_NAME_SUFFIX} REQUIRED COMPONENTS Gui)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Svg)

add_executable(
Expand All @@ -12,7 +12,7 @@ add_executable(
target_link_libraries(
${BIN_NAME} PRIVATE
Qt${QT_VERSION_MAJOR}::Svg
Dtk${DTK_VERSION_MAJOR}::Gui
Dtk${DTK_NAME_SUFFIX}::Gui
)

install(TARGETS ${BIN_NAME} DESTINATION "${TOOL_INSTALL_DIR}")
Loading