11cmake_minimum_required (VERSION 3.10 )
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+
66project (DtkDeclarative
7- VERSION " ${DTK_VERSION} "
7+ VERSION ${FILE_VERSION}
88 DESCRIPTION "DTK Declarative module"
99 HOMEPAGE_URL "https://github.com/linuxdeepin/dtkdeclarative"
1010 LANGUAGES CXX
1111)
1212
13- if (${PROJECT_VERSION_MAJOR} STREQUAL "5" )
14- set (QT_DEFAULT_MAJOR_VERSION "5" )
15- set (QT_VERSION_MAJOR "5" )
13+ # 引入 DTK5/DTK6 构建选项
14+ option (DTK5 "Build DTK5." ON )
15+ if (DTK5)
16+ set (DTK_VERSION_MAJOR "5" )
17+ set (DTK_NAME_SUFFIX "" ) # DTK5 产品名称后缀为空
1618 set (EnableQt5 on )
1719 set (EnableDtk5 on )
1820 set (EnableQt6 off )
1921 set (EnableDtk6 off )
20- elseif (${PROJECT_VERSION_MAJOR} STREQUAL "6" )
21- set (QT_DEFAULT_MAJOR_VERSION "6" )
22- set (QT_VERSION_MAJOR "6" )
22+ else ()
2323 set (DTK_VERSION_MAJOR "6" )
24+ set (DTK_NAME_SUFFIX "6" ) # DTK6 产品名称后缀为 "6"
2425 set (EnableQt5 off )
2526 set (EnableDtk5 off )
2627 set (EnableQt6 on )
2728 set (EnableDtk6 on )
28- else ()
29- message (FATAL_ERROR "Only support DTK_VERSION is 5 or 6" )
3029endif ()
3130
31+ set (DTK_VERSION_MINOR ${PROJECT_VERSION_MINOR} )
32+ set (DTK_VERSION_PATCH ${PROJECT_VERSION_PATCH} )
33+ set (DTK_VERSION "${DTK_VERSION_MAJOR} .${DTK_VERSION_MINOR} .${DTK_VERSION_PATCH} " )
34+ set (QT_VERSION_MAJOR ${DTK_VERSION_MAJOR} )
35+ set (QT_DEFAULT_MAJOR_VERSION ${QT_VERSION_MAJOR} )
36+
3237set (ENABLE_COV OFF CACHE BOOL "Generate coverage info" )
33- set (LIB_NAME dtk${DTK_VERSION_MAJOR } declarative)
38+ set (LIB_NAME dtk${DTK_NAME_SUFFIX } declarative)
3439
3540set (CMAKE_CXX_STANDARD 11)
3641set (CMAKE_CXX_STANDARD_REQUIRED ON )
@@ -50,9 +55,9 @@ include(DtkBuildConfig)
5055set (BUILD_DOCS ON CACHE BOOL "Generate doxygen-based documentation" )
5156
5257set (LIB_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR} " CACHE STRING "Library install path" )
53- set (INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_INCLUDEDIR} /dtk${PROJECT_VERSION_MAJOR } /DDeclarative" CACHE STRING "Headers install path" )
58+ set (INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_INCLUDEDIR} /dtk${DTK_VERSION_MAJOR } /DDeclarative" CACHE STRING "Headers install path" )
5459set (TEMPLATE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX} /share/qtcreator/templates/wizards/projects/qml${DTK_VERSION_MAJOR} -app-template" CACHE STRING "Directory to install QtCreator template" )
55- set (CONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR} /cmake/Dtk${DTK_VERSION_MAJOR } Declarative" CACHE STRING "CMake config file install directory" )
60+ set (CONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR} /cmake/Dtk${DTK_NAME_SUFFIX } Declarative" CACHE STRING "CMake config file install directory" )
5661set (PKGCONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR} /pkgconfig" CACHE STRING "Directory to install pkg-config file" )
5762set (MKSPECS_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR} /qt${QT_VERSION_MAJOR} /mkspecs/modules" CACHE STRING "Qt pri module install directory" )
5863set (QML_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR} /qt${QT_VERSION_MAJOR} /qml" CACHE STRING "Qml plugin install directory" )
@@ -88,7 +93,7 @@ else ()
8893 set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Ofast" )
8994endif ()
9095
91- set (DDECLARATIVE_TRANSLATIONS_DIR "dtk${PROJECT_VERSION_MAJOR } /DDeclarative/translations" CACHE STRING "DDeclarative translations directory" )
96+ set (DDECLARATIVE_TRANSLATIONS_DIR "dtk${DTK_VERSION_MAJOR } /DDeclarative/translations" CACHE STRING "DDeclarative translations directory" )
9297set (DDECLARATIVE_TRANSLATIONS_PATH "share/${DDECLARATIVE_TRANSLATIONS_DIR} " )
9398set (TRANSLATIONS_INSTALL_PATH "${DDECLARATIVE_TRANSLATIONS_PATH} " )
9499
@@ -113,6 +118,7 @@ if(BUILD_DOCS)
113118endif ()
114119
115120if (BUILD_TESTING)
121+ enable_testing ()
116122 add_subdirectory (tests )
117123 add_dependencies (unit-test ${PLUGIN_NAME} ${STYLE_PLUGIN_NAME} )
118124 if (EnableQt6)
@@ -135,20 +141,20 @@ install(DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/misc/qml-app-template/" DESTINATION
135141
136142configure_package_config_file (
137143 "${CMAKE_CURRENT_LIST_DIR} /misc/DtkDeclarativeConfig.cmake.in"
138- "${CMAKE_CURRENT_BINARY_DIR} /Dtk${DTK_VERSION_MAJOR } DeclarativeConfig.cmake"
144+ "${CMAKE_CURRENT_BINARY_DIR} /Dtk${DTK_NAME_SUFFIX } DeclarativeConfig.cmake"
139145 INSTALL_DESTINATION "${CONFIG_INSTALL_DIR} "
140146)
141147write_basic_package_version_file (
142- "${CMAKE_CURRENT_BINARY_DIR} /Dtk${DTK_VERSION_MAJOR } DeclarativeConfigVersion.cmake"
143- VERSION ${VERSION }
148+ "${CMAKE_CURRENT_BINARY_DIR} /Dtk${DTK_NAME_SUFFIX } DeclarativeConfigVersion.cmake"
149+ VERSION ${DTK_VERSION }
144150 COMPATIBILITY SameMajorVersion
145151)
146152# Install cmake config file
147- install (FILES "${CMAKE_CURRENT_BINARY_DIR} /Dtk${DTK_VERSION_MAJOR } DeclarativeConfig.cmake" DESTINATION "${CONFIG_INSTALL_DIR} " )
148- install (FILES "${CMAKE_CURRENT_BINARY_DIR} /Dtk${DTK_VERSION_MAJOR } DeclarativeConfigVersion.cmake" DESTINATION "${CONFIG_INSTALL_DIR} " )
153+ install (FILES "${CMAKE_CURRENT_BINARY_DIR} /Dtk${DTK_NAME_SUFFIX } DeclarativeConfig.cmake" DESTINATION "${CONFIG_INSTALL_DIR} " )
154+ install (FILES "${CMAKE_CURRENT_BINARY_DIR} /Dtk${DTK_NAME_SUFFIX } DeclarativeConfigVersion.cmake" DESTINATION "${CONFIG_INSTALL_DIR} " )
149155# Install pkg-config file
150- configure_file ("${PROJECT_SOURCE_DIR} /misc/dtkdeclarative.pc.in" "${CMAKE_CURRENT_BINARY_DIR} /dtk${DTK_VERSION_MAJOR } declarative.pc" @ONLY )
151- install (FILES "${CMAKE_CURRENT_BINARY_DIR} /dtk${DTK_VERSION_MAJOR } declarative.pc" DESTINATION "${PKGCONFIG_INSTALL_DIR} " )
156+ configure_file ("${PROJECT_SOURCE_DIR} /misc/dtkdeclarative.pc.in" "${CMAKE_CURRENT_BINARY_DIR} /dtk${DTK_NAME_SUFFIX } declarative.pc" @ONLY )
157+ install (FILES "${CMAKE_CURRENT_BINARY_DIR} /dtk${DTK_NAME_SUFFIX } declarative.pc" DESTINATION "${PKGCONFIG_INSTALL_DIR} " )
152158# Install qmake module config file
153159configure_file ("${CMAKE_CURRENT_LIST_DIR} /misc/qt_lib_dtkdeclarative.pri.in" "${CMAKE_CURRENT_BINARY_DIR} /qt_lib_dtkdeclarative.pri" @ONLY )
154160install (FILES "${CMAKE_CURRENT_BINARY_DIR} /qt_lib_dtkdeclarative.pri" DESTINATION "${MKSPECS_INSTALL_DIR} " )
0 commit comments