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" )
16- set (EnableQt5 on )
17- set (EnableDtk5 on )
18- set (EnableQt6 off )
19- set (EnableDtk6 off )
20- elseif (${PROJECT_VERSION_MAJOR} STREQUAL "6" )
21- set (QT_DEFAULT_MAJOR_VERSION "6" )
22- set (QT_VERSION_MAJOR "6" )
23- set (DTK_VERSION_MAJOR "6" )
24- set (EnableQt5 off )
25- set (EnableDtk5 off )
26- set (EnableQt6 on )
27- set (EnableDtk6 on )
13+ option (DTK5 "Build DTK5." ON )
14+ if (DTK5)
15+ set (DTK_VERSION_MAJOR "5" )
16+ set (DTK_NAME_SUFFIX "" )
2817else ()
29- message (FATAL_ERROR "Only support DTK_VERSION is 5 or 6" )
18+ set (DTK_VERSION_MAJOR "6" )
19+ set (DTK_NAME_SUFFIX "6" )
3020endif ()
3121
22+
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+ set (QT_VERSION_MAJOR ${DTK_VERSION_MAJOR} )
27+
3228set (ENABLE_COV OFF CACHE BOOL "Generate coverage info" )
33- set (LIB_NAME dtk${DTK_VERSION_MAJOR } declarative)
29+ set (LIB_NAME dtk${DTK_NAME_SUFFIX } declarative)
3430
3531set (CMAKE_CXX_STANDARD 11)
3632set (CMAKE_CXX_STANDARD_REQUIRED ON )
@@ -50,9 +46,9 @@ include(DtkBuildConfig)
5046set (BUILD_DOCS ON CACHE BOOL "Generate doxygen-based documentation" )
5147
5248set (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" )
49+ set (INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_INCLUDEDIR} /dtk${DTK_VERSION_MAJOR } /DDeclarative" CACHE STRING "Headers install path" )
5450set (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" )
51+ set (CONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR} /cmake/Dtk${DTK_NAME_SUFFIX } Declarative" CACHE STRING "CMake config file install directory" )
5652set (PKGCONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR} /pkgconfig" CACHE STRING "Directory to install pkg-config file" )
5753set (MKSPECS_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR} /qt${QT_VERSION_MAJOR} /mkspecs/modules" CACHE STRING "Qt pri module install directory" )
5854set (QML_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR} /qt${QT_VERSION_MAJOR} /qml" CACHE STRING "Qml plugin install directory" )
@@ -67,12 +63,11 @@ if (${QT_VERSION_MAJOR} STREQUAL "6")
6763 endif ()
6864endif ()
6965
70- if (EnableQt5 )
66+ if (DTK5 )
7167if (TARGET Qt::QuickControls2 AND TARGET Qt::QuickControls2Private)
7268 set (USE_QQuickStylePluginPrivate ON )
7369endif ()
74- endif ()
75- if (EnableQt6)
70+ else ()
7671if (TARGET Qt6::QuickControls2 AND TARGET Qt6::QuickControls2Private)
7772 set (USE_QQuickStylePluginPrivate ON )
7873endif ()
@@ -88,7 +83,7 @@ else ()
8883 set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Ofast" )
8984endif ()
9085
91- set (DDECLARATIVE_TRANSLATIONS_DIR "dtk${PROJECT_VERSION_MAJOR } /DDeclarative/translations" CACHE STRING "DDeclarative translations directory" )
86+ set (DDECLARATIVE_TRANSLATIONS_DIR "dtk${DTK_VERSION_MAJOR } /DDeclarative/translations" CACHE STRING "DDeclarative translations directory" )
9287set (DDECLARATIVE_TRANSLATIONS_PATH "share/${DDECLARATIVE_TRANSLATIONS_DIR} " )
9388set (TRANSLATIONS_INSTALL_PATH "${DDECLARATIVE_TRANSLATIONS_PATH} " )
9489
@@ -98,11 +93,10 @@ set(PLUGIN_NAME dtkdeclarativeplugin)
9893set (STYLE_PLUGIN_NAME qtquickcontrolschameleonstyleplugin)
9994set (PLUGIN_OUTPUT_DIR ${PROJECT_BINARY_DIR} /plugins)
10095
101- if (EnableQt5 )
96+ if (DTK5 )
10297 add_subdirectory (src )
10398 add_subdirectory (qmlplugin )
104- endif ()
105- if (EnableQt6)
99+ else ()
106100 add_subdirectory (qt6 )
107101endif ()
108102add_subdirectory (chameleon )
@@ -113,16 +107,17 @@ if(BUILD_DOCS)
113107endif ()
114108
115109if (BUILD_TESTING)
110+ enable_testing ()
116111 add_subdirectory (tests )
117112 add_dependencies (unit-test ${PLUGIN_NAME} ${STYLE_PLUGIN_NAME} )
118- if (EnableQt6 )
113+ if (NOT DTK5 )
119114 add_dependencies (unit-test dtkdeclarativeprivatesplugin dtkdeclarativesettingsplugin )
120115 endif ()
121116endif ()
122117
123118# Install wizards template
124119set (QML_TEMPLATE_QTVERSION_INDEX 0)
125- if (EnableQt5 )
120+ if (DTK5 )
126121 set (QML_TEMPLATE_QTVERSION_INDEX 3)
127122endif ()
128123configure_package_config_file (
@@ -135,20 +130,20 @@ install(DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/misc/qml-app-template/" DESTINATION
135130
136131configure_package_config_file (
137132 "${CMAKE_CURRENT_LIST_DIR} /misc/DtkDeclarativeConfig.cmake.in"
138- "${CMAKE_CURRENT_BINARY_DIR} /Dtk${DTK_VERSION_MAJOR } DeclarativeConfig.cmake"
133+ "${CMAKE_CURRENT_BINARY_DIR} /Dtk${DTK_NAME_SUFFIX } DeclarativeConfig.cmake"
139134 INSTALL_DESTINATION "${CONFIG_INSTALL_DIR} "
140135)
141136write_basic_package_version_file (
142- "${CMAKE_CURRENT_BINARY_DIR} /Dtk${DTK_VERSION_MAJOR } DeclarativeConfigVersion.cmake"
143- VERSION ${VERSION }
137+ "${CMAKE_CURRENT_BINARY_DIR} /Dtk${DTK_NAME_SUFFIX } DeclarativeConfigVersion.cmake"
138+ VERSION ${DTK_VERSION }
144139 COMPATIBILITY SameMajorVersion
145140)
146141# 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} " )
142+ install (FILES "${CMAKE_CURRENT_BINARY_DIR} /Dtk${DTK_NAME_SUFFIX } DeclarativeConfig.cmake" DESTINATION "${CONFIG_INSTALL_DIR} " )
143+ install (FILES "${CMAKE_CURRENT_BINARY_DIR} /Dtk${DTK_NAME_SUFFIX } DeclarativeConfigVersion.cmake" DESTINATION "${CONFIG_INSTALL_DIR} " )
149144# 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} " )
145+ configure_file ("${PROJECT_SOURCE_DIR} /misc/dtkdeclarative.pc.in" "${CMAKE_CURRENT_BINARY_DIR} /dtk${DTK_NAME_SUFFIX } declarative.pc" @ONLY )
146+ install (FILES "${CMAKE_CURRENT_BINARY_DIR} /dtk${DTK_NAME_SUFFIX } declarative.pc" DESTINATION "${PKGCONFIG_INSTALL_DIR} " )
152147# Install qmake module config file
153148configure_file ("${CMAKE_CURRENT_LIST_DIR} /misc/qt_lib_dtkdeclarative.pri.in" "${CMAKE_CURRENT_BINARY_DIR} /qt_lib_dtkdeclarative.pri" @ONLY )
154149install (FILES "${CMAKE_CURRENT_BINARY_DIR} /qt_lib_dtkdeclarative.pri" DESTINATION "${MKSPECS_INSTALL_DIR} " )
0 commit comments