diff --git a/CMakeLists.txt b/CMakeLists.txt index 6d4002e0..e3494049 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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 "DTK version") +file(READ "${CMAKE_CURRENT_SOURCE_DIR}/VERSION" FILE_VERSION) +string(STRIP "${FILE_VERSION}" FILE_VERSION) project (DtkCore - VERSION ${DTK_VERSION} + VERSION ${FILE_VERSION} DESCRIPTION "DTK Core module" HOMEPAGE_URL "https://github.com/linuxdeepin/dtkcore" LANGUAGES CXX C @@ -18,13 +17,19 @@ endif () include(GNUInstallDirs) include(CMakePackageConfigHelpers) -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") +option(DTK5 "Build DTK5." ON) +if(DTK5) + set(DTK_VERSION_MAJOR "5") + set(DTK_NAME_SUFFIX "") # Empty name suffix for DTK5 products. 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}") +# Officially, DTK5 uses QT5, DTK6 uses QT6 +set(QT_VERSION_MAJOR ${DTK_VERSION_MAJOR}) + include(dtkcore.cmake) diff --git a/archlinux/PKGBUILD b/archlinux/PKGBUILD index c97bcad9..8de82788 100644 --- a/archlinux/PKGBUILD +++ b/archlinux/PKGBUILD @@ -30,7 +30,7 @@ build() { -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_BUILD_TYPE=Release \ -DD_DSG_APP_DATA_FALLBACK=/var/dsg/appdata \ - -DBUILD_WITH_SYSTEMD=ON + -DDTK5=ON ninja } diff --git a/cmake/DtkCMake/DtkCMakeConfig.cmake.in b/cmake/DtkCMake/DtkCMakeConfig.cmake.in index c115ebce..60a14ba7 100644 --- a/cmake/DtkCMake/DtkCMakeConfig.cmake.in +++ b/cmake/DtkCMake/DtkCMakeConfig.cmake.in @@ -6,7 +6,7 @@ endfunction() add_definitions(-DQ_HOST_NAME=\"${CMAKE_HOST_SYSTEM_PROCESSOR}\") addDefinitions(Q_HOST_${CMAKE_HOST_SYSTEM_PROCESSOR}) -find_package(Dtk@DTK_VERSION_MAJOR@Core REQUIRED) +find_package(Dtk@DTK_NAME_SUFFIX@Core REQUIRED) set(DEEPIN_OS_RELEASE_TOOL_PATH ${DtkCore_TOOL_DIRS}) set(DEEPIN_OS_RELEASE_TOOL ${DEEPIN_OS_RELEASE_TOOL_PATH}/deepin-os-release) diff --git a/cmake/DtkTools/DtkToolsConfig.cmake.in b/cmake/DtkTools/DtkToolsConfig.cmake.in index 074003b5..b34c7b7c 100644 --- a/cmake/DtkTools/DtkToolsConfig.cmake.in +++ b/cmake/DtkTools/DtkToolsConfig.cmake.in @@ -1,5 +1,5 @@ include(CMakeFindDependencyMacro) -find_dependency(Dtk@DTK_VERSION_MAJOR@Core REQUIRED) +find_dependency(Dtk@DTK_NAME_SUFFIX@Core REQUIRED) set (DTK_SETTINGS_TOOLS_EXECUTABLE ${DtkCore_TOOL_DIRS}/dtk-settings) @@ -7,10 +7,10 @@ if (EXISTS ${DTK_SETTINGS_TOOLS_EXECUTABLE}) set(DTK_SETTINGS_TOOLS_FOUND TRUE) endif () -include("${CMAKE_CURRENT_LIST_DIR}/Dtk@DTK_VERSION_MAJOR@SettingsToolsMacros.cmake") -include("${CMAKE_CURRENT_LIST_DIR}/Dtk@DTK_VERSION_MAJOR@ToolsTargets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/Dtk@DTK_NAME_SUFFIX@SettingsToolsMacros.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/Dtk@DTK_NAME_SUFFIX@ToolsTargets.cmake") include("${CMAKE_CURRENT_LIST_DIR}/DtkDBusMacros.cmake") include("${CMAKE_CURRENT_LIST_DIR}/DtkDConfigMacros.cmake") -get_target_property(DTK_XML2CPP Dtk@DTK_VERSION_MAJOR@::Xml2Cpp LOCATION) -get_target_property(DTK_DCONFIG2CPP Dtk@DTK_VERSION_MAJOR@::DConfig2Cpp LOCATION) +get_target_property(DTK_XML2CPP Dtk@DTK_NAME_SUFFIX@::Xml2Cpp LOCATION) +get_target_property(DTK_DCONFIG2CPP Dtk@DTK_NAME_SUFFIX@::DConfig2Cpp LOCATION) diff --git a/debian/control b/debian/control index 5a4db0f9..8c4b397b 100644 --- a/debian/control +++ b/debian/control @@ -1,43 +1,92 @@ Source: dtkcore Section: libdevel Priority: optional -Maintainer: Deepin Packages Builder -Build-Depends: debhelper-compat ( =12), pkg-config, - qttools5-dev-tools, qttools5-dev, qtbase5-private-dev, doxygen, - libgsettings-qt-dev, libgtest-dev, libdtkcommon-dev, cmake, - libuchardet-dev, libicu-dev, libdtklog-dev, libdbus-1-dev +Maintainer: Shanshan Ye +Build-Depends: debhelper-compat ( =12), + pkg-config, + libgtest-dev, + libdtkcommon-dev, + libicu-dev, + libuchardet-dev, + libdbus-1-dev, + qttools5-dev-tools, + qttools5-dev, + libgsettings-qt-dev, + libdtklog-dev, + doxygen, + qtbase5-private-dev, + qt6-base-dev-tools, + qt6-base-dev, + qt6-base-private-dev, + libdtk6log-dev, + qt6-tools-dev, + cmake Standards-Version: 3.9.8 +Package: libdtk6core +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, lshw +Multi-Arch: same +Build-Profiles: +Description: Development ToolKit Core Library (DTK6 with Qt6) + DTK Core is the base library of deepin Qt/C++ applications. + . + This package contains the shared libraries for DTK6 applications. + +Package: libdtk6core-bin +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, + libdtk6core( =${binary:Version}) +Build-Profiles: +Description: Development ToolKit Core Utilities (DTK6 with Qt6) + DTK Core is the base library of deepin Qt/C++ applications. + . + This package contains the utilities of DTK6 Core. + +Package: libdtk6core-dev +Architecture: any +Depends: libdtk6core( =${binary:Version}), + libdtkcommon-dev(>=5.6.16), libdtk6log-dev +Build-Profiles: +Description: Development ToolKit Core Devel Library (DTK6 with Qt6) + DTK Core is the base library of deepin Qt/C++ applications. + . + This package contains the header files and development library symbolic links of DTK6 Core. + Package: libdtkcore5 Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, lshw Multi-Arch: same -Description: Deepin Tool Kit Core library - DtkCore is base library of Deepin Qt/C++ applications. +Build-Profiles: +Description: Development ToolKit Core Library (DTK5 with Qt5) + DTK Core is the base library of deepin Qt/C++ applications. . - This package contains the shared libraries. + This package contains the shared libraries for DTK5 applications. Package: libdtkcore5-bin Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, libdtkcore5( =${binary:Version}) -Description: Deepin Tool Kit Core Utilities - DtkCore is base devel library of Deepin Qt/C++ applications. +Build-Profiles: +Description: Development ToolKit Core Utilities (DTK5 with Qt5) + DTK Core is the base library of deepin Qt/C++ applications. . - This package contains the utilities of DtkCore + This package contains the utilities of DTK5 Core. Package: libdtkcore-dev Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends}, libdtkcore5( =${binary:Version}), +Depends: libdtkcore5( =${binary:Version}), libdtkcommon-dev(>=5.6.16), libdtklog-dev -Description: Deepin Tool Kit Core Devel library - DtkCore is base devel library of Deepin Qt/C++ applications. +Build-Profiles: +Description: Development ToolKit Core Devel Library (DTK5 with Qt5) + DTK Core is the base library of deepin Qt/C++ applications. . - This package contains the header files and static libraries of DtkCore + This package contains the header files and development library symbolic links of DTK5 Core. Package: libdtkcore-doc Architecture: any -Description: Deepin Tool Kit Core (document) - DtkCore is base devel library of Deepin Qt/C++ applications. +Build-Profiles: +Description: Development ToolKit Core Documentation + DTK Core is the base library of deepin Qt/C++ applications. . - This package contains the doc files of DtkCore + This package contains the doc files of DtkCore. diff --git a/debian/libdtk6core-bin.install b/debian/libdtk6core-bin.install new file mode 100644 index 00000000..ccf1ab5a --- /dev/null +++ b/debian/libdtk6core-bin.install @@ -0,0 +1 @@ +usr/libexec/dtk6/DCore/bin/* diff --git a/debian/libdtk6core-dev.install b/debian/libdtk6core-dev.install new file mode 100644 index 00000000..f62c7111 --- /dev/null +++ b/debian/libdtk6core-dev.install @@ -0,0 +1,5 @@ +usr/lib/*/libdtk6core.so +usr/include/dtk6/* +usr/lib/*/pkgconfig/dtk6core.pc +usr/lib/*/cmake/Dtk6*/* +usr/lib/*/qt6/* diff --git a/debian/libdtk6core.install b/debian/libdtk6core.install new file mode 100644 index 00000000..62ee2429 --- /dev/null +++ b/debian/libdtk6core.install @@ -0,0 +1 @@ +usr/lib/*/libdtk6core.so.* diff --git a/debian/libdtkcore-dev.install b/debian/libdtkcore-dev.install index f1f7613e..9c44f44c 100644 --- a/debian/libdtkcore-dev.install +++ b/debian/libdtkcore-dev.install @@ -1,5 +1,8 @@ -usr/lib/*/lib*.so -usr/include -usr/lib/*/pkgconfig/*.pc -usr/lib/*/cmake/*/*.cmake +usr/lib/*/libdtkcore.so +usr/include/dtk5/* +usr/lib/*/pkgconfig/dtkcore.pc +usr/lib/*/cmake/DtkCMake/* +usr/lib/*/cmake/DtkTools/* +usr/lib/*/cmake/DtkDConfig/* +usr/lib/*/cmake/DtkCore/* usr/lib/*/qt5/* diff --git a/debian/libdtkcore5-bin.install b/debian/libdtkcore5-bin.install index 643e56ce..38dcb05b 100644 --- a/debian/libdtkcore5-bin.install +++ b/debian/libdtkcore5-bin.install @@ -1 +1 @@ -usr/*/*/DCore/bin/* \ No newline at end of file +usr/libexec/dtk5/DCore/bin/* diff --git a/debian/libdtkcore5.install b/debian/libdtkcore5.install index 3ddde584..7da6d2ee 100644 --- a/debian/libdtkcore5.install +++ b/debian/libdtkcore5.install @@ -1 +1 @@ -usr/lib/*/lib*.so.* +usr/lib/*/libdtkcore.so.* diff --git a/debian/rules b/debian/rules index cbe2c4d8..18bb866c 100755 --- a/debian/rules +++ b/debian/rules @@ -1,7 +1,6 @@ #!/usr/bin/make -f DPKG_EXPORT_BUILDFLAGS = 1 include /usr/share/dpkg/default.mk -export QT_SELECT = qt5 export DEB_CXXFLAGS_MAINT_APPEND = -Ofast # 安全编译参数 @@ -15,25 +14,74 @@ DEB_CMAKE_EXTRA_FLAGS += -DCMAKE_SKIP_BUILD_RPATH=ON DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) -VERSION = $(DEB_VERSION_UPSTREAM) +# x.y.z -> DTK5_VERSION=5.y.z, DTK6_VERSION=6.y.z +DTK5_VERSION := $(shell echo $(DEB_VERSION_UPSTREAM) | sed -E 's/^[0-9]+(\.|[^0-9]|$$)/5\1/') +DTK6_VERSION := $(shell echo $(DEB_VERSION_UPSTREAM) | sed -E 's/^[0-9]+(\.|[^0-9]|$$)/6\1/') # Calculate build version: # 5.6.8 -> 0; 5.6.8.7 -> 7; 5.6.8+u001 -> 1; 5.6.8.7+u001 -> 7; 5.6.8.0+u001 -> 0 -BUILD_VER = $(shell echo $(VERSION) | awk -F'[+_~-]' '{print $$1}' | awk -F'.' '{print $$4}' | sed 's/[^0-9]//g' | awk '{print int($$1)}') +BUILD_VER := $(shell echo $(DEB_VERSION_UPSTREAM) | awk -F'[+_~-]' '{print $$1}' | awk -F'.' '{print $$4}' | sed 's/[^0-9]//g' | awk '{print int($$1)}') ifeq ($(BUILD_VER), 0) -ifeq ($(shell expr $(shell echo "$(VERSION)" | awk -F. '{print NF-1}') '<' 3), 1) - BUILD_VER=$(shell echo $(VERSION) | awk -F'[+_~-]' '{print $$2}' | sed 's/[^0-9]//g' | awk '{print int($$1)}') +ifeq ($(shell expr $(shell echo "$(DEB_VERSION_UPSTREAM)" | awk -F. '{print NF-1}') '<' 3), 1) + BUILD_VER=$(shell echo $(DEB_VERSION_UPSTREAM) | awk -F'[+_~-]' '{print $$2}' | sed 's/[^0-9]//g' | awk '{print int($$1)}') endif endif +DTK5_MAJOR_MINOR := $(shell echo $(DTK5_VERSION) | cut -d '.' -f 1,2) +DTK6_MAJOR_MINOR := $(shell echo $(DTK6_VERSION) | cut -d '.' -f 1,2) +BUILD_DOCS := $(if $(filter nodoc,$(DEB_BUILD_PROFILES)),OFF,ON) +BUILD_DTK5 := $(if $(filter nodtk5,$(DEB_BUILD_PROFILES)),OFF,ON) +BUILD_DTK6 := $(if $(filter nodtk6,$(DEB_BUILD_PROFILES)),OFF,ON) + %: dh $@ override_dh_auto_configure: - dh_auto_configure -- $(DEB_CMAKE_EXTRA_FLAGS) -DBUILD_WITH_SYSTEMD=ON -DBUILD_EXAMPLES=OFF -DBUILD_DOCS=ON -DBUILD_VERSION=$(BUILD_VER) -DD_DSG_APP_DATA_FALLBACK=/var/dsg/appdata +ifeq ($(BUILD_DTK5),ON) + mkdir -p build-dtk5 + QT_SELECT=qt5 dh_auto_configure --builddirectory=build-dtk5 -- $(DEB_CMAKE_EXTRA_FLAGS) -DBUILD_WITH_SYSTEMD=ON -DBUILD_EXAMPLES=OFF -DBUILD_DOCS=$(BUILD_DOCS) -DBUILD_VERSION=$(BUILD_VER) -DD_DSG_APP_DATA_FALLBACK=/var/dsg/appdata -DDTK5=ON +endif +ifeq ($(BUILD_DTK6),ON) + mkdir -p build-dtk6 + dh_auto_configure --builddirectory=build-dtk6 -- $(DEB_CMAKE_EXTRA_FLAGS) -DBUILD_WITH_SYSTEMD=ON -DBUILD_EXAMPLES=OFF -DBUILD_DOCS=OFF -DBUILD_VERSION=$(BUILD_VER) -DD_DSG_APP_DATA_FALLBACK=/var/dsg/appdata -DDTK5=OFF +endif + +override_dh_auto_build: +ifeq ($(BUILD_DTK5),ON) + QT_SELECT=qt5 dh_auto_build --builddirectory=build-dtk5 +endif +ifeq ($(BUILD_DTK6),ON) + dh_auto_build --builddirectory=build-dtk6 +endif -#override_dh_auto_test: -# echo "skip auto test" +override_dh_auto_install: +ifeq ($(BUILD_DTK5),ON) + QT_SELECT=qt5 dh_auto_install --builddirectory=build-dtk5 +endif +ifeq ($(BUILD_DTK6),ON) + dh_auto_install --builddirectory=build-dtk6 +endif override_dh_makeshlibs: - dh_makeshlibs -V "libdtkcore5 (>= $(shell echo $(VERSION) | cut -d '.' -f 1,2))" +ifeq ($(BUILD_DTK5),ON) + dh_makeshlibs -V "libdtkcore5 (>= $(DTK5_MAJOR_MINOR))" -plibdtkcore5 +endif +ifeq ($(BUILD_DTK6),ON) + dh_makeshlibs -V "libdtk6core (>= $(DTK6_MAJOR_MINOR))" -plibdtk6core +endif + +override_dh_link: +ifeq ($(BUILD_DTK5),ON) + dh_link usr/lib/$(DEB_HOST_MULTIARCH)/libdtkcore.so.5 usr/lib/$(DEB_HOST_MULTIARCH)/libdtkcore.so -p libdtkcore-dev +endif +ifeq ($(BUILD_DTK6),ON) + dh_link usr/lib/$(DEB_HOST_MULTIARCH)/libdtk6core.so.6 usr/lib/$(DEB_HOST_MULTIARCH)/libdtk6core.so -p libdtk6core-dev +endif + +override_dh_auto_test: +ifeq ($(BUILD_DTK5),ON) + QT_SELECT=qt5 dh_auto_test --builddirectory=build-dtk5 +endif +ifeq ($(BUILD_DTK6),ON) + dh_auto_test --builddirectory=build-dtk6 +endif diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt index 357b7121..3b71425b 100644 --- a/docs/CMakeLists.txt +++ b/docs/CMakeLists.txt @@ -7,7 +7,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") diff --git a/dtkcore.cmake b/dtkcore.cmake index 556f3d41..abdede5b 100644 --- a/dtkcore.cmake +++ b/dtkcore.cmake @@ -1,18 +1,16 @@ -set(LIB_NAME dtk${DTK_VERSION_MAJOR}core) -set(DtkCore Dtk${DTK_VERSION_MAJOR}Core) +set(LIB_NAME dtk${DTK_NAME_SUFFIX}core) +set(DtkCore Dtk${DTK_NAME_SUFFIX}Core) macro(add_sub_dir dir) -# message("add_subdirectory(${dir} ${OUTPUT_DIR}/${dir})") add_subdirectory(${dir} ${OUTPUT_DIR}/${dir}) endmacro() -message("Current Qt Version: ${QT_VERSION_MAJOR}") -message("Current Dtk Version: ${DTK_VERSION_MAJOR}") +message(STATUS "Compiling with DTK major version: ${DTK_VERSION_MAJOR}, Qt major version: ${QT_VERSION_MAJOR}") set(OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}) set (LIBRARY_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}") -set (INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_INCLUDEDIR}/dtk${PROJECT_VERSION_MAJOR}/DCore") -set (TOOL_INSTALL_DIR "${CMAKE_INSTALL_LIBEXECDIR}/dtk${PROJECT_VERSION_MAJOR}/DCore/bin") +set (INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_INCLUDEDIR}/dtk${DTK_VERSION_MAJOR}/DCore") +set (TOOL_INSTALL_DIR "${CMAKE_INSTALL_LIBEXECDIR}/dtk${DTK_VERSION_MAJOR}/DCore/bin") set (MKSPECS_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/qt${QT_VERSION_MAJOR}/mkspecs/modules" CACHE STRING "Install dir for qt pri files") set (FEATURES_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/qt${QT_VERSION_MAJOR}/mkspecs/features" CACHE STRING "Install dir for qt prf files") set (CONFIG_CMAKE_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/${DtkCore}" CACHE STRING "Install dir for cmake config files") @@ -74,35 +72,31 @@ if(BUILD_EXAMPLES) endif() add_sub_dir(tools) -if("${QT_VERSION_MAJOR}" STREQUAL "6") - set(DTK_VERSION_MAJOR 6) -endif() - configure_package_config_file(cmake/DtkCMake/DtkCMakeConfig.cmake.in - ${CMAKE_CURRENT_BINARY_DIR}/cmake/DtkCMake/Dtk${DTK_VERSION_MAJOR}CMakeConfig.cmake - INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/Dtk${DTK_VERSION_MAJOR}CMake" + ${CMAKE_CURRENT_BINARY_DIR}/cmake/DtkCMake/Dtk${DTK_NAME_SUFFIX}CMakeConfig.cmake + INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/Dtk${DTK_NAME_SUFFIX}CMake" PATH_VARS TOOL_INSTALL_DIR) -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/cmake/DtkCMake/Dtk${DTK_VERSION_MAJOR}CMakeConfig.cmake - DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/Dtk${DTK_VERSION_MAJOR}CMake") +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/cmake/DtkCMake/Dtk${DTK_NAME_SUFFIX}CMakeConfig.cmake + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/Dtk${DTK_NAME_SUFFIX}CMake") configure_package_config_file(cmake/DtkTools/DtkToolsConfig.cmake.in - ${CMAKE_CURRENT_BINARY_DIR}/cmake/DtkTools/Dtk${DTK_VERSION_MAJOR}ToolsConfig.cmake - INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/Dtk${DTK_VERSION_MAJOR}Tools + ${CMAKE_CURRENT_BINARY_DIR}/cmake/DtkTools/Dtk${DTK_NAME_SUFFIX}ToolsConfig.cmake + INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/Dtk${DTK_NAME_SUFFIX}Tools PATH_VARS TOOL_INSTALL_DIR) -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/cmake/DtkTools/Dtk${DTK_VERSION_MAJOR}ToolsConfig.cmake - DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/Dtk${DTK_VERSION_MAJOR}Tools") +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/cmake/DtkTools/Dtk${DTK_NAME_SUFFIX}ToolsConfig.cmake + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/Dtk${DTK_NAME_SUFFIX}Tools") install(FILES cmake/DtkTools/DtkSettingsToolsMacros.cmake - DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/Dtk${DTK_VERSION_MAJOR}Tools" - RENAME Dtk${DTK_VERSION_MAJOR}SettingsToolsMacros.cmake) + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/Dtk${DTK_NAME_SUFFIX}Tools" + RENAME Dtk${DTK_NAME_SUFFIX}SettingsToolsMacros.cmake) install(FILES cmake/DtkTools/DtkDBusMacros.cmake - DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/Dtk${DTK_VERSION_MAJOR}Tools") + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/Dtk${DTK_NAME_SUFFIX}Tools") install(FILES ${CMAKE_SOURCE_DIR}/cmake/DtkTools/DtkDConfigMacros.cmake - DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/Dtk${DTK_VERSION_MAJOR}Tools") + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/Dtk${DTK_NAME_SUFFIX}Tools") -if (NOT DTK_VERSION_MAJOR) +if (NOT DTK5) set(DCONFIG_DEPRECATED_FUNCS [=[ # deprecated since dtk6 function(dconfig_meta_files) @@ -114,11 +108,11 @@ endfunction()]=]) endif() configure_package_config_file(cmake/DtkDConfig/DtkDConfigConfig.cmake.in - ${CMAKE_CURRENT_BINARY_DIR}/cmake/DtkDConfig/Dtk${DTK_VERSION_MAJOR}DConfigConfig.cmake - INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/Dtk${DTK_VERSION_MAJOR}DConfig" + ${CMAKE_CURRENT_BINARY_DIR}/cmake/DtkDConfig/Dtk${DTK_NAME_SUFFIX}DConfigConfig.cmake + INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/Dtk${DTK_NAME_SUFFIX}DConfig" PATH_VARS TOOL_INSTALL_DIR) -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/cmake/DtkDConfig/Dtk${DTK_VERSION_MAJOR}DConfigConfig.cmake - DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/Dtk${DTK_VERSION_MAJOR}DConfig") +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/cmake/DtkDConfig/Dtk${DTK_NAME_SUFFIX}DConfigConfig.cmake + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/Dtk${DTK_NAME_SUFFIX}DConfig") configure_package_config_file(misc/DtkCoreConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/${DtkCore}Config.cmake @@ -141,11 +135,11 @@ install(FILES misc/dtk_install_dconfig.prf DESTINATION ${FEATURES_INSTALL_DIR}) set(CONFIGNAME ${PROJECT_BINARY_DIR}/dtkcore_config.h) file(WRITE ${CONFIGNAME} "// it is auto make config\n" - "#define DTK_VERSION_MAJOR ${PROJECT_VERSION_MAJOR}\n" - "#define DTK_VERSION_MINOR ${PROJECT_VERSION_MINOR}\n" - "#define DTK_VERSION_PATCH ${PROJECT_VERSION_PATCH}\n" + "#define DTK_VERSION_MAJOR ${DTK_VERSION_MAJOR}\n" + "#define DTK_VERSION_MINOR ${DTK_VERSION_MINOR}\n" + "#define DTK_VERSION_PATCH ${DTK_VERSION_PATCH}\n" "#define DTK_VERSION_BUILD ${BUILD_VERSION}\n" - "#define DTK_VERSION_STR \"${PROJECT_VERSION}\"\n" + "#define DTK_VERSION_STR \"${DTK_VERSION}\"\n" "\n" ) file(GLOB CONFIGSOURCE include/DtkCore/*) diff --git a/examples/dlog-example/CMakeLists.txt b/examples/dlog-example/CMakeLists.txt index 99991107..772f3c24 100644 --- a/examples/dlog-example/CMakeLists.txt +++ b/examples/dlog-example/CMakeLists.txt @@ -1,4 +1,4 @@ -set(BIN_NAME dlog${DTK_VERSION_MAJOR}) +set(BIN_NAME dlog${DTK_NAME_SUFFIX}) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core) diff --git a/examples/expintf-example/CMakeLists.txt b/examples/expintf-example/CMakeLists.txt index bf31c5a9..59417c39 100644 --- a/examples/expintf-example/CMakeLists.txt +++ b/examples/expintf-example/CMakeLists.txt @@ -1,4 +1,4 @@ -set(BIN_NAME exprintf${DTK_VERSION_MAJOR}) +set(BIN_NAME exprintf${DTK_NAME_SUFFIX}) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS DBus) diff --git a/examples/filewatcher-example/CMakeLists.txt b/examples/filewatcher-example/CMakeLists.txt index 0b0f1e5e..ea9455a8 100644 --- a/examples/filewatcher-example/CMakeLists.txt +++ b/examples/filewatcher-example/CMakeLists.txt @@ -1,4 +1,4 @@ -set(BIN_NAME filewatcher${DTK_VERSION_MAJOR}) +set(BIN_NAME filewatcher${DTK_NAME_SUFFIX}) find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core) diff --git a/examples/textcodec-example/CMakeLists.txt b/examples/textcodec-example/CMakeLists.txt index 04e1dd94..0104064e 100644 --- a/examples/textcodec-example/CMakeLists.txt +++ b/examples/textcodec-example/CMakeLists.txt @@ -1,4 +1,4 @@ -set(BIN_NAME textcodec${DTK_VERSION_MAJOR}) +set(BIN_NAME textcodec${DTK_NAME_SUFFIX}) find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core) diff --git a/misc/DtkCoreConfig.cmake.in b/misc/DtkCoreConfig.cmake.in index ca897353..fc3ad5b2 100644 --- a/misc/DtkCoreConfig.cmake.in +++ b/misc/DtkCoreConfig.cmake.in @@ -6,17 +6,17 @@ endif() include(CMakeFindDependencyMacro) find_dependency(Qt@QT_VERSION_MAJOR@Core) find_dependency(Qt@QT_VERSION_MAJOR@Xml) -find_dependency(Dtk@DTK_VERSION_MAJOR@Log) +find_dependency(Dtk@DTK_NAME_SUFFIX@Log) if (LINUX) find_dependency(Qt@QT_VERSION_MAJOR@DBus) endif() -find_dependency(Dtk@DTK_VERSION_MAJOR@DConfig) -include(${CMAKE_CURRENT_LIST_DIR}/Dtk@DTK_VERSION_MAJOR@CoreTargets.cmake) +find_dependency(Dtk@DTK_NAME_SUFFIX@DConfig) +include(${CMAKE_CURRENT_LIST_DIR}/Dtk@DTK_NAME_SUFFIX@CoreTargets.cmake) -set(DtkCore_LIBRARIES Dtk@DTK_VERSION_MAJOR@::Core) -get_target_property(DtkCore_INCLUDE_DIRS Dtk@DTK_VERSION_MAJOR@::Core INTERFACE_INCLUDE_DIRECTORIES) -get_target_property(DtkCore_LIBRARY_DIRS Dtk@DTK_VERSION_MAJOR@::Core INTERFACE_LINK_DIRECTORIES) +set(DtkCore_LIBRARIES Dtk@DTK_NAME_SUFFIX@::Core) +get_target_property(DtkCore_INCLUDE_DIRS Dtk@DTK_NAME_SUFFIX@::Core INTERFACE_INCLUDE_DIRECTORIES) +get_target_property(DtkCore_LIBRARY_DIRS Dtk@DTK_NAME_SUFFIX@::Core INTERFACE_LINK_DIRECTORIES) set(DtkCore_TOOL_DIRS "@PACKAGE_TOOL_INSTALL_DIR@") check_required_components(DtkCore) diff --git a/misc/dtkcore.pc.in b/misc/dtkcore.pc.in index 890d6225..d5b2d01d 100644 --- a/misc/dtkcore.pc.in +++ b/misc/dtkcore.pc.in @@ -3,9 +3,9 @@ exec_prefix=${prefix} libdir=${prefix}/@LIBRARY_INSTALL_DIR@ includedir=${prefix}/@INCLUDE_INSTALL_DIR@ -Name: dtk@DTK_VERSION_MAJOR@core -Description: Deepin Tool Kit dtkcore header files -Version: @CMAKE_PROJECT_VERSION@ -Libs: -L${libdir} -ldtk@DTK_VERSION_MAJOR@core +Name: dtk@DTK_NAME_SUFFIX@core +Description: Development ToolKit Core Devel Library +Version: @DTK_VERSION@ +Libs: -L${libdir} -ldtk@DTK_NAME_SUFFIX@core Cflags: -I${includedir} -DQT_MESSAGELOGCONTEXT -Requires: dtk@DTK_VERSION_MAJOR@log +Requires: dtk@DTK_NAME_SUFFIX@log diff --git a/misc/qt_lib_dtkcore.pri.in b/misc/qt_lib_dtkcore.pri.in index 06ee503c..c019f288 100644 --- a/misc/qt_lib_dtkcore.pri.in +++ b/misc/qt_lib_dtkcore.pri.in @@ -1,9 +1,9 @@ -QT.dtkcore.VERSION = @CMAKE_PROJECT_VERSION@ -QT.dtkcore.MAJOR_VERSION = @PROJECT_VERSION_MAJOR@ -QT.dtkcore.MINOR_VERSION = @PROJECT_VERSION_MINOR@ -QT.dtkcore.PATCH_VERSION = @PROJECT_VERSION_PATCH@ +QT.dtkcore.VERSION = @DTK_VERSION@ +QT.dtkcore.MAJOR_VERSION = @DTK_VERSION_MAJOR@ +QT.dtkcore.MINOR_VERSION = @DTK_VERSION_MINOR@ +QT.dtkcore.PATCH_VERSION = @DTK_VERSION_PATCH@ QT.dtkcore.name = dtkcore -QT.dtkcore.module = dtk@DTK_VERSION_MAJOR@core +QT.dtkcore.module = dtk@DTK_NAME_SUFFIX@core QT.dtkcore.tools = @CMAKE_INSTALL_PREFIX@/@TOOL_INSTALL_DIR@ QT.dtkcore.libs = @CMAKE_INSTALL_PREFIX@/@LIBRARY_INSTALL_DIR@ QT.dtkcore.includes = @CMAKE_INSTALL_PREFIX@/@INCLUDE_INSTALL_DIR@ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 80dd6859..db33425a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -7,7 +7,7 @@ set(CMAKE_AUTOUIC ON) set(CMAKE_AUTORCC ON) find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core) -find_package(Dtk${DTK_VERSION_MAJOR}Log REQUIRED) +find_package(Dtk${DTK_NAME_SUFFIX}Log REQUIRED) find_package(DBus1 REQUIRED) if(LINUX) find_package(PkgConfig REQUIRED) @@ -77,7 +77,7 @@ if(LINUX) Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::DBus Qt${QT_VERSION_MAJOR}::Xml - Dtk${DTK_VERSION_MAJOR}::Log + Dtk${DTK_NAME_SUFFIX}::Log ) target_link_libraries(${LIB_NAME} PRIVATE Qt${QT_VERSION_MAJOR}::CorePrivate @@ -113,8 +113,8 @@ else() endif() 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 Core ) @@ -191,6 +191,6 @@ install(TARGETS ${LIB_NAME} EXPORT ${DtkCore}Targets install(EXPORT ${DtkCore}Targets FILE ${DtkCore}Targets.cmake - NAMESPACE Dtk${DTK_VERSION_MAJOR}:: + NAMESPACE Dtk${DTK_NAME_SUFFIX}:: DESTINATION ${CONFIG_CMAKE_INSTALL_DIR} ) diff --git a/src/glob.cmake b/src/glob.cmake index 83bcdb81..558b797d 100644 --- a/src/glob.cmake +++ b/src/glob.cmake @@ -7,7 +7,7 @@ set(OUTER_SOURCE ${CMAKE_CURRENT_LIST_DIR}/ddesktopentry.cpp ) -if (NOT DTK_VERSION_MAJOR) +if (DTK5) list(APPEND OUTER_SOURCE ${CMAKE_CURRENT_LIST_DIR}/dtkcore_global.cpp) endif() diff --git a/src/settings/settings.cmake b/src/settings/settings.cmake index ace9cd79..44ebd062 100644 --- a/src/settings/settings.cmake +++ b/src/settings/settings.cmake @@ -20,7 +20,7 @@ else() ) endif() -if(DTK_VERSION_MAJOR) +if(NOT DTK5) list(REMOVE_ITEM SETTINGS_SOURCES "${CMAKE_CURRENT_LIST_DIR}/backend/gsettingsbackend.cpp") list(REMOVE_ITEM SETTINGS_HEADERS "${CMAKE_CURRENT_LIST_DIR}/../../include/settings/backend/gsettingsbackend.h") endif() diff --git a/src/util/util.cmake b/src/util/util.cmake index aa2fa7cf..cda8f50b 100644 --- a/src/util/util.cmake +++ b/src/util/util.cmake @@ -47,7 +47,7 @@ set(PRIVATE_HEADERS ${CMAKE_CURRENT_LIST_DIR}/ddbusinterface_p.h ${CMAKE_CURRENT_LIST_DIR}/ddbusextendedpendingcallwatcher_p.h) -if(DTK_VERSION_MAJOR) +if(NOT DTK5) list(REMOVE_ITEM UTILS_SOURCES "${CMAKE_CURRENT_LIST_DIR}/dtimedloop.cpp") list(REMOVE_ITEM UTILS_HEADERS "${PROJECT_SOURCE_DIR}/include/util/dtimedloop.h") # no longer be used list(REMOVE_ITEM UTILS_HEADERS "${PROJECT_SOURCE_DIR}/include/util/dasync.h") diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index c3aa6b2c..82e1e502 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -37,7 +37,7 @@ find_package(GTest REQUIRED) include(GoogleTest) # for test.so -set(TEST_SO_NAME vtabletest${DTK_VERSION_MAJOR}) +set(TEST_SO_NAME vtabletest${DTK_NAME_SUFFIX}) add_subdirectory(./testso) # test @@ -49,7 +49,7 @@ file(GLOB FackDBus "./fakedbus/*.cpp" ) -if(DTK_VERSION_MAJOR) +if(NOT DTK5) list(REMOVE_ITEM TEST_SOURCE "${CMAKE_CURRENT_LIST_DIR}/ut_gsettingsbackend.cpp") list(REMOVE_ITEM TEST_SOURCE "${CMAKE_CURRENT_LIST_DIR}/ut_dasync.cpp") endif() diff --git a/tools/ch2py/CMakeLists.txt b/tools/ch2py/CMakeLists.txt index 18f2e434..3cba13a4 100644 --- a/tools/ch2py/CMakeLists.txt +++ b/tools/ch2py/CMakeLists.txt @@ -1,5 +1,5 @@ set(TARGET_NAME ch2py) -set(BIN_NAME ${TARGET_NAME}${DTK_VERSION_MAJOR}) +set(BIN_NAME ${TARGET_NAME}${DTK_NAME_SUFFIX}) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core) diff --git a/tools/dci/CMakeLists.txt b/tools/dci/CMakeLists.txt index 2174db24..271afb00 100644 --- a/tools/dci/CMakeLists.txt +++ b/tools/dci/CMakeLists.txt @@ -1,5 +1,5 @@ set(TARGET_NAME dci) -set(BIN_NAME ${TARGET_NAME}${DTK_VERSION_MAJOR}) +set(BIN_NAME ${TARGET_NAME}${DTK_NAME_SUFFIX}) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core) diff --git a/tools/dconfig2cpp/CMakeLists.txt b/tools/dconfig2cpp/CMakeLists.txt index 74f1d3c3..b90b55eb 100644 --- a/tools/dconfig2cpp/CMakeLists.txt +++ b/tools/dconfig2cpp/CMakeLists.txt @@ -1,5 +1,5 @@ set(TARGET_NAME dconfig2cpp) -set(BIN_NAME ${TARGET_NAME}${DTK_VERSION_MAJOR}) +set(BIN_NAME ${TARGET_NAME}${DTK_NAME_SUFFIX}) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core) @@ -21,6 +21,6 @@ set_target_properties( install( TARGETS ${BIN_NAME} - EXPORT Dtk${DTK_VERSION_MAJOR}ToolsTargets + EXPORT Dtk${DTK_NAME_SUFFIX}ToolsTargets DESTINATION ${TOOL_INSTALL_DIR} ) diff --git a/tools/deepin-os-release/CMakeLists.txt b/tools/deepin-os-release/CMakeLists.txt index 4cc96c3b..e59d249e 100644 --- a/tools/deepin-os-release/CMakeLists.txt +++ b/tools/deepin-os-release/CMakeLists.txt @@ -1,5 +1,5 @@ set(TARGET_NAME deepin-os-release) -set(BIN_NAME ${TARGET_NAME}${DTK_VERSION_MAJOR}) +set(BIN_NAME ${TARGET_NAME}${DTK_NAME_SUFFIX}) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) set(CMAKE_AUTOMOC ON) diff --git a/tools/qdbusxml2cpp/CMakeLists.txt b/tools/qdbusxml2cpp/CMakeLists.txt index e47e7f96..6e020d80 100644 --- a/tools/qdbusxml2cpp/CMakeLists.txt +++ b/tools/qdbusxml2cpp/CMakeLists.txt @@ -1,5 +1,5 @@ set(TARGET_NAME qdbusxml2cpp-fix) -set(BIN_NAME ${TARGET_NAME}${DTK_VERSION_MAJOR}) +set(BIN_NAME ${TARGET_NAME}${DTK_NAME_SUFFIX}) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core) @@ -30,13 +30,13 @@ set_target_properties( install( TARGETS ${BIN_NAME} - EXPORT Dtk${DTK_VERSION_MAJOR}ToolsTargets + EXPORT Dtk${DTK_NAME_SUFFIX}ToolsTargets DESTINATION ${TOOL_INSTALL_DIR} ) install( - EXPORT Dtk${DTK_VERSION_MAJOR}ToolsTargets - FILE Dtk${DTK_VERSION_MAJOR}ToolsTargets.cmake - NAMESPACE Dtk${DTK_VERSION_MAJOR}:: - DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/Dtk${DTK_VERSION_MAJOR}Tools" + EXPORT Dtk${DTK_NAME_SUFFIX}ToolsTargets + FILE Dtk${DTK_NAME_SUFFIX}ToolsTargets.cmake + NAMESPACE Dtk${DTK_NAME_SUFFIX}:: + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/Dtk${DTK_NAME_SUFFIX}Tools" ) diff --git a/tools/settings/CMakeLists.txt b/tools/settings/CMakeLists.txt index c56bbed8..e713c041 100644 --- a/tools/settings/CMakeLists.txt +++ b/tools/settings/CMakeLists.txt @@ -1,5 +1,5 @@ set(TARGET_NAME dtk-settings) -set(BIN_NAME ${TARGET_NAME}${DTK_VERSION_MAJOR}) +set(BIN_NAME ${TARGET_NAME}${DTK_NAME_SUFFIX}) find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core) find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Xml)