mirror of https://github.com/linuxdeepin/dtkcore
feat: 适配多版本合并(移除冲突添加依赖)
1. 移除prf文件,全部移动到libdtkcommon包中 2. 移除cmake文件夹中的文件,移动到libdtkcommon包中 3. 移除src/com.deepin.dtk.gschema.xml文件,移动到libdtkcommon包中 4. 修改control文件,添加依赖libdtkcommon包 Log: dtkcore多版本前的适配版本(移除冲突) Change-Id: Iac4310cef55ab2bf31478e905d751aa121fb4078
This commit is contained in:
parent
7fc25a8f8f
commit
b9205142b7
|
@ -1,3 +0,0 @@
|
|||
foreach(module ${Dtk_FIND_COMPONENTS})
|
||||
find_package(Dtk${module})
|
||||
endforeach()
|
|
@ -1,76 +0,0 @@
|
|||
function(addDefinitions macro)
|
||||
string(TOUPPER ${macro} macro)
|
||||
add_definitions(-D${macro})
|
||||
endfunction()
|
||||
|
||||
add_definitions(-DQ_HOST_NAME=\"${CMAKE_HOST_SYSTEM_PROCESSOR}\")
|
||||
addDefinitions(Q_HOST_${CMAKE_HOST_SYSTEM_PROCESSOR})
|
||||
|
||||
find_package(DtkCore REQUIRED)
|
||||
|
||||
set(DEEPIN_OS_RELEASE_TOOL_PATH ${DTKCORE_TOOL_DIR})
|
||||
set(DEEPIN_OS_RELEASE_TOOL ${DEEPIN_OS_RELEASE_TOOL_PATH}/deepin-os-release)
|
||||
|
||||
if(NOT EXISTS "${DEEPIN_OS_RELEASE_TOOL}")
|
||||
message(FATAL_ERROR "\"${DEEPIN_OS_RELEASE_TOOL}\" is not exists. Install \"dtkcore-bin\" first")
|
||||
endif()
|
||||
|
||||
function(formatString string)
|
||||
string(REGEX REPLACE "\\s+" "_" string ${string})
|
||||
endfunction()
|
||||
|
||||
macro(execDeepinOsRelease args output)
|
||||
exec_program(${DEEPIN_OS_RELEASE_TOOL} ARGS ${args} OUTPUT_VARIABLE ${output} RETURN_VALUE exitCode)
|
||||
|
||||
if(NOT ${exitCode} EQUAL 0)
|
||||
message(FATAL_ERROR "exec deepin-os-release failed, with args: ${args}, error message: ${output}")
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
execDeepinOsRelease(--deepin-type DEEPIN_OS_TYPE)
|
||||
execDeepinOsRelease(--deepin-version DEEPIN_OS_VERSION)
|
||||
execDeepinOsRelease(--product-type CMAKE_PLATFORM_ID)
|
||||
execDeepinOsRelease(--product-version CMAKE_PLATFORM_VERSION)
|
||||
|
||||
if("${CMAKE_PLATFORM_ID}" STREQUAL "")
|
||||
message(WARNING "No value of the \"--product-type\" in the process \"${DEEPIN_OS_RELEASE_TOOL}\"")
|
||||
else()
|
||||
formatString(CMAKE_PLATFORM_ID)
|
||||
|
||||
message("OS: ${CMAKE_PLATFORM_ID}, Version: ${CMAKE_PLATFORM_VERSION}")
|
||||
|
||||
if(NOT "${CMAKE_PLATFORM_ID}" STREQUAL "")
|
||||
addDefinitions(Q_OS_${CMAKE_PLATFORM_ID})
|
||||
string(TOUPPER ${CMAKE_PLATFORM_ID} CMAKE_PLATFORM_ID)
|
||||
set(OS_${CMAKE_PLATFORM_ID} TRUE)
|
||||
endif()
|
||||
|
||||
formatString(CMAKE_PLATFORM_VERSION)
|
||||
add_definitions(-DQ_OS_VERSION=\"${CMAKE_PLATFORM_VERSION}\")
|
||||
|
||||
#uos base with deepin
|
||||
if("${CMAKE_PLATFORM_ID}" STREQUAL "UOS")
|
||||
addDefinitions(Q_OS_DEEPIN)
|
||||
set(OS_DEEPIN TRUE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if("${DEEPIN_OS_TYPE}" STREQUAL "")
|
||||
message(WARNING "No value of the \"--deepin-type\" in the process \"${DEEPIN_OS_RELEASE_TOOL}\"")
|
||||
else()
|
||||
formatString(DEEPIN_OS_TYPE)
|
||||
|
||||
message("Deepin OS Type: ${DEEPIN_OS_TYPE}")
|
||||
message("Deepin OS Version: ${DEEPIN_OS_VERSION}")
|
||||
|
||||
if(NOT "${DEEPIN_OS_TYPE}" STREQUAL "")
|
||||
addDefinitions(Q_OS_DEEPIN_${DEEPIN_OS_TYPE})
|
||||
addDefinitions(DEEPIN_DDE)
|
||||
string(TOUPPER ${DEEPIN_OS_TYPE} DEEPIN_OS_TYPE)
|
||||
set(OS_DEEPIN_${DEEPIN_OS_TYPE} TRUE)
|
||||
set(DEEPIN_DDE TRUE)
|
||||
endif()
|
||||
|
||||
formatString(DEEPIN_OS_VERSION)
|
||||
add_definitions(-DQ_OS_DEEPIN_VERSION=\"${DEEPIN_OS_VERSION}\")
|
||||
endif()
|
|
@ -1,53 +0,0 @@
|
|||
#=============================================================================
|
||||
# Copyright 2019 Deepin Technology Co., Ltd.
|
||||
# Copyright 2019 Gary Wang
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
#
|
||||
# * Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
#
|
||||
# * Neither the name of authors nor the names of its
|
||||
# contributors may be used to endorse or promote products derived
|
||||
# from this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#=============================================================================
|
||||
|
||||
function(DTK_CREATE_I18N_FROM_JSON _generated_file_list _input_json_file _output_cpp_file_name)
|
||||
set (generated_file_list) # 0(failed) or 1(successed) files in the list.
|
||||
|
||||
get_filename_component(_input_json_abs_path ${_input_json_file} ABSOLUTE)
|
||||
get_filename_component(_input_json_abs_dir ${_input_json_abs_path} DIRECTORY)
|
||||
set (_output_cpp_abs_path ${_input_json_abs_dir}/${_output_cpp_file_name})
|
||||
|
||||
if (DTK_SETTINGS_TOOLS_FOUND)
|
||||
add_custom_command(OUTPUT ${_output_cpp_abs_path}
|
||||
COMMAND ${DTK_SETTINGS_TOOLS_EXECUTABLE}
|
||||
ARGS ${_input_json_abs_path} -o ${_output_cpp_abs_path}
|
||||
DEPENDS ${_input_json_abs_path} VERBATIM)
|
||||
list(APPEND generated_file_list ${_output_cpp_abs_path})
|
||||
else ()
|
||||
message (WARNING "The dtk-settings tools could not be found at ${DTK_SETTINGS_TOOLS_EXECUTABLE}")
|
||||
message (WARNING "Package distributor may create a seprated package for tools like `libdtkcore-bin`.")
|
||||
endif ()
|
||||
|
||||
set(${_generated_file_list} ${generated_file_list} PARENT_SCOPE)
|
||||
endfunction()
|
|
@ -1,9 +0,0 @@
|
|||
find_package(DtkCore REQUIRED)
|
||||
|
||||
set (DTK_SETTINGS_TOOLS_EXECUTABLE ${DTKCORE_TOOL_DIR}/dtk-settings)
|
||||
|
||||
if (EXISTS ${DTK_SETTINGS_TOOLS_EXECUTABLE})
|
||||
set(DTK_SETTINGS_TOOLS_FOUND TRUE)
|
||||
endif ()
|
||||
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/DtkSettingsToolsMacros.cmake")
|
|
@ -4,7 +4,7 @@ Priority: optional
|
|||
Maintainer: Deepin Packages Builder <packages@deepin.com>
|
||||
Build-Depends: debhelper (>= 9), pkg-config,
|
||||
qttools5-dev-tools, qtbase5-private-dev,
|
||||
libgsettings-qt-dev, libgtest-dev
|
||||
libgsettings-qt-dev, libgtest-dev, libdtkcommon
|
||||
Standards-Version: 3.9.8
|
||||
|
||||
Package: libdtkcore5
|
||||
|
|
|
@ -1,2 +1 @@
|
|||
usr/lib/*/lib*.so.*
|
||||
usr/share/glib-2.0/schemas
|
||||
|
|
|
@ -1 +1 @@
|
|||
include($$PWD/src/dtk_lib.prf)
|
||||
load(dtk_lib)
|
||||
|
|
|
@ -1,16 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<schemalist>
|
||||
<enum id="com.deepin.dtk.ColorType">
|
||||
<value nick="UnknownType" value="0" />
|
||||
<value nick="LightType" value="1" />
|
||||
<value nick="DarkType" value="2" />
|
||||
</enum>
|
||||
|
||||
<schema id="com.deepin.dtk">
|
||||
<key enum="com.deepin.dtk.ColorType" name="palette-type">
|
||||
<default>'UnknownType'</default>
|
||||
<summary>application palette type</summary>
|
||||
<description>Palette type of the application. SystemTheme=0 LightTheme=1 DarkTheme=2</description>
|
||||
</key>
|
||||
</schema>
|
||||
</schemalist>
|
|
@ -1,98 +0,0 @@
|
|||
exists(../dtk_build_config.prf) {
|
||||
include(../dtk_build_config.prf)
|
||||
} else {
|
||||
load(dtk_build_config)
|
||||
}
|
||||
|
||||
#标记已经加载了dtk_build.prf
|
||||
DTK_BUILD=1
|
||||
TEMPLATE = lib
|
||||
|
||||
CONFIG += c++11 create_pc create_prl no_install_prl
|
||||
CONFIG += no_keywords
|
||||
|
||||
DEFINES += QT_MESSAGELOGCONTEXT
|
||||
DEFINES += LIB$$upper($$DTK_MODULE_NAME)_LIBRARY
|
||||
DEFINES += DTK_LIB_DIR_NAME=\\\"$$LIB_VERSION_NAME\\\"
|
||||
|
||||
isEmpty(target.path): target.path = $$LIB_INSTALL_DIR
|
||||
isEmpty(includes.path): includes.path = $$quote($$INCLUDE_INSTALL_DIR)
|
||||
|
||||
!isEmpty(DTK_STATIC_LIB) {
|
||||
DEFINES += DTK_STATIC_LIB
|
||||
CONFIG += staticlib
|
||||
}
|
||||
|
||||
!isEmpty(DTK_STATIC_TRANSLATION) {
|
||||
DEFINES += DTK_STATIC_TRANSLATION
|
||||
}
|
||||
|
||||
defineTest(containIncludeFiles) {
|
||||
header = $$absolute_path($$ARGS)
|
||||
header_dir = $$quote($$dirname(header))
|
||||
|
||||
for (file, includes.files) {
|
||||
file_ap = $$absolute_path($$file)
|
||||
file_dir = $$quote($$dirname(file_ap))
|
||||
|
||||
isEqual(file_dir, $$header_dir):return(true)
|
||||
}
|
||||
|
||||
return(false)
|
||||
}
|
||||
|
||||
ALL_HEADER_FILE_NAME=Dtk$${MODULE_NAME}s
|
||||
|
||||
#添加一个include模块提供的所有头文件的总的头文件
|
||||
defineTest(updateDtkHeaderFile) {
|
||||
include_files = $$HEADERS
|
||||
file_content = $$quote($${LITERAL_HASH}ifndef DTK_$$upper($$MODULE_NAME)_MODULE_H)
|
||||
file_content += $$quote($${LITERAL_HASH}define DTK_$$upper($$MODULE_NAME)_MODULE_H)
|
||||
|
||||
for(header, include_files) {
|
||||
#排除私有头文件,以 _p.h 结尾的认为是私有头文件
|
||||
suffix = $$str_member($$header, -4, -1)
|
||||
!isEqual(suffix, "_p.h"): containIncludeFiles($$header) {
|
||||
file_content += $$quote($${LITERAL_HASH}include \"$$basename(header)\")
|
||||
}
|
||||
}
|
||||
|
||||
file_content += $$quote($${LITERAL_HASH}endif)
|
||||
!write_file($$_PRO_FILE_PWD_/$$ALL_HEADER_FILE_NAME, file_content):return(false)
|
||||
|
||||
return(true)
|
||||
}
|
||||
|
||||
!updateDtkHeaderFile():warning(Cannot create "$${ALL_HEADER_FILE_NAME}" header file)
|
||||
|
||||
# create dtkxxx_config.h file
|
||||
defineTest(updateDtkConfigFile) {
|
||||
isEqual(DTK_MODULE_NAME, dtkcore) {
|
||||
config_content += $$quote($${LITERAL_HASH}define DTK_VERSION_MAJOR $$VER_MAJ)
|
||||
config_content += $$quote($${LITERAL_HASH}define DTK_VERSION_MINOR $$VER_MIN)
|
||||
config_content += $$quote($${LITERAL_HASH}define DTK_VERSION_PATCH $$VER_PAT)
|
||||
config_content += $$quote($${LITERAL_HASH}define DTK_VERSION_BUILD $$VER_BUI)
|
||||
config_content += $$quote($${LITERAL_HASH}define DTK_VERSION_STR \"$$VERSION\")
|
||||
config_content += $$quote(//)
|
||||
}
|
||||
|
||||
for(file, includes.files) {
|
||||
file = $$quote($$basename(file))
|
||||
|
||||
!isEqual(file, $$ALL_HEADER_FILE_NAME):contains(file, D[A-Za-z0-9_]+) {
|
||||
config_content += $$quote($${LITERAL_HASH}define $$upper($$DTK_MODULE_NAME)_CLASS_$$file)
|
||||
}
|
||||
}
|
||||
|
||||
!write_file($$_PRO_FILE_PWD_/$${DTK_MODULE_NAME}_config.h, config_content):return(false)
|
||||
|
||||
return(true)
|
||||
}
|
||||
|
||||
!updateDtkConfigFile():warning(Cannot create "$${DTK_MODULE_NAME}_config.h" header file)
|
||||
|
||||
exists($$PWD/dtk_translation.prf) {
|
||||
include($$PWD/dtk_translation.prf)
|
||||
} else {
|
||||
load(dtk_translation)
|
||||
}
|
|
@ -1,43 +0,0 @@
|
|||
# CMake configure
|
||||
|
||||
#TODO: check cmake exist
|
||||
|
||||
!win*: {
|
||||
MODULE_DEPENDS=$$find(QT, dtk*)
|
||||
CMAKE_MODULE_DEPENDS=$$replace(MODULE_DEPENDS,"dtk","")
|
||||
|
||||
CMAKE_MODULE=Dtk$$MODULE_NAME
|
||||
WORK_DIR=$$_PRO_FILE_PWD_
|
||||
|
||||
message("config cmake module: $$CMAKE_MODULE")
|
||||
|
||||
LINK_LIBRARIES = ""
|
||||
|
||||
for(MODULE_DEPEND, CMAKE_MODULE_DEPENDS) {
|
||||
MODULE_DEPEND=$$capitalizingString($$MODULE_DEPEND)
|
||||
CMAKE_CONTENT += "find_package(Dtk REQUIRED $$MODULE_DEPEND)"
|
||||
LINK_LIBRARIES += " ${Dtk$${MODULE_DEPEND}_LIBRARIES}"
|
||||
}
|
||||
|
||||
CMAKE_MODULE_INCLUDE_DIR=$$upper($${CMAKE_MODULE})_INCLUDE_DIR
|
||||
INC_DIR = $$replace(INCLUDE_INSTALL_DIR, "/", "/")
|
||||
|
||||
CMAKE_MODULE_TOO_DIR=$$upper($${CMAKE_MODULE})_TOOL_DIR
|
||||
TOOL_DIR = $$TOOL_INSTALL_DIR
|
||||
|
||||
CMAKE_CONTENT += "set($${CMAKE_MODULE_INCLUDE_DIR} $${INC_DIR})"
|
||||
CMAKE_CONTENT += "set($${CMAKE_MODULE_TOO_DIR} $${TOOL_DIR})"
|
||||
CMAKE_CONTENT += "set($${CMAKE_MODULE}_LIBRARIES $$TARGET$$LINK_LIBRARIES)"
|
||||
CMAKE_CONTENT += "include_directories(\"${"$${CMAKE_MODULE_INCLUDE_DIR}"}\")"
|
||||
|
||||
CMAKE_DIR=$$WORK_DIR/../cmake/$${CMAKE_MODULE}
|
||||
CMAKE_PATH=$$CMAKE_DIR/$${CMAKE_MODULE}Config.cmake
|
||||
mkpath($$CMAKE_DIR)
|
||||
message("write cmake file to $$CMAKE_PATH")
|
||||
write_file($$CMAKE_PATH, CMAKE_CONTENT) | error("Aborting.")
|
||||
|
||||
cmake_config.files = $$WORK_DIR/../cmake
|
||||
cmake_config.path = $$LIB_INSTALL_DIR
|
||||
|
||||
INSTALLS += cmake_config
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
TEMPLATE = subdirs
|
||||
CONFIG += ordered
|
||||
|
||||
exists($$_PRO_FILE_PWD_/src) SUBDIRS += src
|
||||
exists($$_PRO_FILE_PWD_/tools) SUBDIRS += tools
|
||||
exists($$_PRO_FILE_PWD_/tests) SUBDIRS += tests
|
||||
exists($$_PRO_FILE_PWD_/examples) SUBDIRS += examples
|
|
@ -1,127 +0,0 @@
|
|||
isEmpty(DTK_BUILD): error("Please load(dtk_build) first!")
|
||||
|
||||
# -----------------------
|
||||
# Config Qt module
|
||||
MODULE_ID=$$DTK_MODULE_NAME
|
||||
mod_inst_pfx=$$_PRO_FILE_PWD_
|
||||
MODULE_PRI = $$mod_inst_pfx/qt_lib_$${MODULE_ID}.pri
|
||||
module_libs = $$LIB_INSTALL_DIR
|
||||
module_tools = $$TOOL_INSTALL_DIR
|
||||
MODULE_INCLUDES = $$INCLUDE_INSTALL_DIR
|
||||
MODULE_DEPENDS=$$find(QT, dtk*)
|
||||
|
||||
message("config qt module: $$MODULE_ID")
|
||||
message("write $$MODULE_PRI to: $$mod_inst_pfx")
|
||||
|
||||
internal_module: \
|
||||
MODULE_DEPENDS = $$replace(QT, -private$, _private)
|
||||
else: \
|
||||
MODULE_DEPENDS = $$replace(QT, -private$, )
|
||||
MODULE_DEPENDS = $$unique(MODULE_DEPENDS)
|
||||
contains(MODULE_DEPENDS, $$MODULE): \
|
||||
error("$$MODULE_ID depends on itself.")
|
||||
|
||||
# Create a module .pri file
|
||||
module_libs=$$LIB_INSTALL_DIR
|
||||
isEmpty(module_libs) {
|
||||
host_build: \
|
||||
module_libs = "\$\$QT_MODULE_HOST_LIB_BASE"
|
||||
else: \
|
||||
module_libs = "\$\$QT_MODULE_LIB_BASE"
|
||||
}
|
||||
|
||||
# In addition to the library's private deps, the private module's deps
|
||||
# are logically runtime deps of the public module.
|
||||
runtime_deps = $$QT_PRIVATE $$QT_FOR_PRIVATE
|
||||
!isEmpty(runtime_deps): \
|
||||
module_rundep = "QT.$${MODULE_ID}.run_depends = $$replace(runtime_deps, -private$, _private)"
|
||||
else: \
|
||||
module_rundep =
|
||||
module_build_type = v2
|
||||
static: \
|
||||
module_build_type += staticlib
|
||||
lib_bundle {
|
||||
module_build_type += lib_bundle
|
||||
MODULE_FRAMEWORKS = " \$\$QT_MODULE_LIB_BASE"
|
||||
}
|
||||
internal_module: \
|
||||
module_build_type += internal_module
|
||||
ltcg: \
|
||||
module_build_type += ltcg
|
||||
module_module =
|
||||
!equals(TEMPLATE, aux) {
|
||||
module_module = $$MODULE_ID$$QT_LIBINFIX
|
||||
!lib_bundle: module_module ~= s,^Qt,Qt$$QT_MAJOR_VERSION,
|
||||
}
|
||||
!isEmpty(MODULE_CONFIG): \
|
||||
module_config = "QT.$${MODULE_ID}.CONFIG = $$MODULE_CONFIG"
|
||||
else: \
|
||||
module_config =
|
||||
!isEmpty(MODULE_PLUGIN_TYPES): \
|
||||
module_plugtypes = "QT.$${MODULE_ID}.plugin_types = $$replace(MODULE_PLUGIN_TYPES, /.*$, )"
|
||||
else: \
|
||||
module_plugtypes =
|
||||
!isEmpty(MODULE_MASTER_HEADER): \
|
||||
module_master = "QT.$${MODULE_ID}.master_header = $$MODULE_MASTER_HEADER"
|
||||
else: \
|
||||
module_master =
|
||||
|
||||
MODULE_PRI_CONT += \
|
||||
"QT.$${MODULE_ID}.VERSION = $${VERSION}" \
|
||||
"QT.$${MODULE_ID}.MAJOR_VERSION = $${VER_MAJ}" \
|
||||
"QT.$${MODULE_ID}.MINOR_VERSION = $${VER_MIN}" \
|
||||
"QT.$${MODULE_ID}.PATCH_VERSION = $${VER_PAT}" \
|
||||
"" \
|
||||
"QT.$${MODULE_ID}.name = $${MODULE_ID}" \
|
||||
"QT.$${MODULE_ID}.module = $$module_module" \
|
||||
"QT.$${MODULE_ID}.tools = $$module_tools" \
|
||||
"QT.$${MODULE_ID}.libs = $$module_libs" \
|
||||
$$module_master \
|
||||
"QT.$${MODULE_ID}.includes = $$MODULE_INCLUDES" \
|
||||
"QT.$${MODULE_ID}.frameworks =$$MODULE_FRAMEWORKS"
|
||||
|
||||
MODULE_PRI_CONT += \
|
||||
"QT.$${MODULE_ID}.depends =$$join(MODULE_DEPENDS, " ", " ")" \
|
||||
$$module_rundep \
|
||||
"QT.$${MODULE_ID}.module_config =$$join(module_build_type, " ", " ")" \
|
||||
$$module_config \
|
||||
"QT.$${MODULE_ID}.DEFINES = $$val_escape(MODULE_DEFINES)" \
|
||||
"" \
|
||||
"QT_MODULES += $$MODULE"
|
||||
|
||||
write_file($$MODULE_PRI, MODULE_PRI_CONT)|error("Aborting.")
|
||||
|
||||
qt_module.files = $$MODULE_PRI
|
||||
|
||||
isEmpty(MKSPECS_INSTALL_DIR) {
|
||||
MKSPECS_INSTALL_DIR=$$[QT_INSTALL_ARCHDATA]/mkspecs
|
||||
}
|
||||
qt_module.path = $${MKSPECS_INSTALL_DIR}/modules
|
||||
|
||||
INSTALLS += qt_module
|
||||
|
||||
PKG_MODULE_DEPENDS=$$find(QT, dtk*)
|
||||
|
||||
#不能添加Qt包的依赖,无法单纯的从Qt模块名称获取其pkgconfig的pc文件名
|
||||
#for (qt_module, QT) {
|
||||
# #DBus模块需要特殊处理
|
||||
# isEqual(qt_module, "dbus") {
|
||||
# PKG_MODULE_DEPENDS+=Qt5DBus
|
||||
# } else {
|
||||
# suffix = $$str_member($$qt_module, -7, -1)
|
||||
# #排除以private结尾的模块
|
||||
# !isEqual(suffix, "private"): PKG_MODULE_DEPENDS+=Qt5$$capitalizingString($$qt_module)
|
||||
# }
|
||||
#}
|
||||
|
||||
PKG_MODULE_DEPENDS = $$unique(PKG_MODULE_DEPENDS)
|
||||
|
||||
# -----------------------
|
||||
# Config pkg-config
|
||||
QMAKE_PKGCONFIG_VERSION = $$VERSION
|
||||
QMAKE_PKGCONFIG_DESTDIR = pkgconfig
|
||||
QMAKE_PKGCONFIG_NAME = $$upper($$MODULE_ID)
|
||||
QMAKE_PKGCONFIG_DESCRIPTION = Deepin Tool Kit $$MODULE_ID header files
|
||||
QMAKE_PKGCONFIG_REQUIRES += $$join(PKG_MODULE_DEPENDS, ", ")
|
||||
QMAKE_PKGCONFIG_INCDIR = $$includes.path
|
||||
QMAKE_PKGCONFIG_LIBDIR = $$target.path
|
|
@ -1,121 +0,0 @@
|
|||
CONFIG += host_$$QMAKE_HOST.arch
|
||||
DEFINES += Q_HOST_NAME=\\\"$$QMAKE_HOST.arch\\\" Q_HOST_$$upper($$QMAKE_HOST.arch)
|
||||
|
||||
defineTest(buildQMAKEProject) {
|
||||
pro_dir = $$1
|
||||
pro_out_dir = $$shadowed($$pro_dir)
|
||||
isEmpty(QMAKE_CD): QMAKE_CD=cd
|
||||
pro_cmd_base = "$$QMAKE_CD $$system_quote($$system_path($$pro_out_dir)) &&"
|
||||
mkpath($$pro_out_dir)
|
||||
command = $$pro_cmd_base $$system_quote($$system_path($$QMAKE_QMAKE))
|
||||
CONFIG(debug, debug|release) {
|
||||
command += QMAKE_CFLAGS_DEBUG*=\"$$QMAKE_CFLAGS_DEBUG\" \
|
||||
QMAKE_CXXFLAGS_DEBUG*=\"$$QMAKE_CXXFLAGS_DEBUG\" \
|
||||
QMAKE_LFLAGS_DEBUG*=\"$$QMAKE_LFLAGS_DEBUG\" \
|
||||
CONFIG+=debug
|
||||
} else {
|
||||
command += QMAKE_CFLAGS_RELEASE*=\"$$QMAKE_CFLAGS_RELEASE\" \
|
||||
QMAKE_CXXFLAGS_RELEASE*=\"$$QMAKE_CXXFLAGS_RELEASE\" \
|
||||
QMAKE_LFLAGS_RELEASE*=\"$$QMAKE_LFLAGS_RELEASE\"
|
||||
}
|
||||
command += -spec $$QMAKESPEC $$shell_quote($$pro_dir)
|
||||
message($${command}:)
|
||||
# Qt >= 5.8
|
||||
greaterThan(QT_MINOR_VERSION, 7) {
|
||||
!equals(3, false): 1 = "( $$1 ) 2>&1"
|
||||
output = $$system("$$command", lines, result)
|
||||
!isEmpty(output): message($$output)
|
||||
!equals(result, 0): return(false)
|
||||
} else {
|
||||
system("$$command")|return(false)
|
||||
}
|
||||
load(configure)
|
||||
command = $$pro_cmd_base $$QMAKE_MAKE
|
||||
message($${command}:)
|
||||
# Qt >= 5.8
|
||||
greaterThan(QT_MINOR_VERSION, 7) {
|
||||
!equals(3, false): 1 = "( $$1 ) 2>&1"
|
||||
output = $$system("$$command", lines, result)
|
||||
!isEmpty(output): message($$output)
|
||||
!equals(result, 0): return(false)
|
||||
} else {
|
||||
system("$$command")|return(false)
|
||||
}
|
||||
return(true)
|
||||
}
|
||||
|
||||
isEqual(TARGET, dtkcore) {
|
||||
DEEPIN_OS_RELEASE_TOOL=$$_PRO_FILE_PWD_/../bin/deepin-os-release
|
||||
|
||||
!exists($$DEEPIN_OS_RELEASE_TOOL) {
|
||||
tools_dir = $$_PRO_FILE_PWD_/../tools/deepin-os-release
|
||||
!buildQMAKEProject($$tools_dir): error(Failed on build deepin-os-release)
|
||||
}
|
||||
} else {
|
||||
isEmpty(QT.dtkcore.tools): error(QT += dtkcore first)
|
||||
DEEPIN_OS_RELEASE_TOOL=$${QT.dtkcore.tools}/deepin-os-release
|
||||
}
|
||||
|
||||
!exists($$DEEPIN_OS_RELEASE_TOOL): error(\"$$DEEPIN_OS_RELEASE_TOOL\" is not exists. Install \"dtkcore-bin\" first)
|
||||
|
||||
defineReplace(formatString) {
|
||||
string = $$1
|
||||
string = $$replace(string, \\s+, _)
|
||||
string_count = $$size(string)
|
||||
|
||||
greaterThan(string_count, 1) {
|
||||
for (item, string) {
|
||||
isEmpty(new_string): new_string = $$item
|
||||
else: new_string = $${new_string}_$${item}
|
||||
}
|
||||
|
||||
return($$new_string)
|
||||
}
|
||||
|
||||
return($$string)
|
||||
}
|
||||
|
||||
DEEPIN_OS_TYPE = $$system($$DEEPIN_OS_RELEASE_TOOL --deepin-type)
|
||||
DEEPIN_OS_VERSION = $$system($$DEEPIN_OS_RELEASE_TOOL --deepin-version)
|
||||
DISTRIB_ID = $$system($$DEEPIN_OS_RELEASE_TOOL --product-type)
|
||||
DISTRIB_RELEASE = $$system($$DEEPIN_OS_RELEASE_TOOL --product-version)
|
||||
|
||||
isEmpty(DISTRIB_ID): warning(No value of the "--product-type" in the process "$$DEEPIN_OS_RELEASE_TOOL")
|
||||
else {
|
||||
DISTRIB_ID = $$formatString($$DISTRIB_ID)
|
||||
|
||||
message("OS: $$DISTRIB_ID, Version: $$DISTRIB_RELEASE")
|
||||
|
||||
QMAKE_PLATFORM += $$lower($$DISTRIB_ID)
|
||||
|
||||
DISTRIB_ID = $$upper($$DISTRIB_ID)
|
||||
!isEmpty(DISTRIB_ID): DEFINES += Q_OS_$$DISTRIB_ID
|
||||
CONFIG *= $$QMAKE_PLATFORM
|
||||
|
||||
DISTRIB_RELEASE = $$formatString($$DISTRIB_RELEASE)
|
||||
DEFINES += Q_OS_VERSION=\\\"$$DISTRIB_RELEASE\\\"
|
||||
|
||||
#uos base with deepin
|
||||
isEqual(DISTRIB_ID, UOS) {
|
||||
QMAKE_PLATFORM += deepin
|
||||
DEFINES += Q_OS_DEEPIN
|
||||
}
|
||||
}
|
||||
|
||||
isEmpty(DEEPIN_OS_TYPE): warning(No value of the "--deepin-type" in the process "$$DEEPIN_OS_RELEASE_TOOL")
|
||||
else {
|
||||
DEEPIN_OS_TYPE = $$formatString($$DEEPIN_OS_TYPE)
|
||||
|
||||
message(Deepin OS Type: $$DEEPIN_OS_TYPE)
|
||||
message(Deepin OS Version: $$DEEPIN_OS_VERSION)
|
||||
|
||||
!isEmpty(DEEPIN_OS_TYPE) {
|
||||
QMAKE_PLATFORM += deepin_$$lower($$DEEPIN_OS_TYPE) deepin_dde
|
||||
DEFINES += Q_OS_DEEPIN_$$upper($$DEEPIN_OS_TYPE) DEEPIN_DDE
|
||||
}
|
||||
|
||||
DEEPIN_OS_VERSION = $$formatString($$DEEPIN_OS_VERSION)
|
||||
DEFINES += Q_OS_DEEPIN_VERSION=\\\"$$DEEPIN_OS_VERSION\\\"
|
||||
|
||||
CONFIG *= $$QMAKE_PLATFORM
|
||||
}
|
|
@ -1,63 +0,0 @@
|
|||
message ("Process dtk translation")
|
||||
message ("Add DTK_NO_TRANSLATION=YES to qmake arguments to skip this")
|
||||
message ("Add DTK_STATIC_TRANSLATION=YES to add support for static translations")
|
||||
|
||||
# TODO: check lrelease/lupdate exist
|
||||
|
||||
ROOT_DIR = $$_PRO_FILE_PWD_
|
||||
|
||||
BASENAME = $$basename(_PRO_FILE_)
|
||||
BASENAME = $$split(BASENAME, .)
|
||||
BASENAME = $$first(BASENAME)
|
||||
|
||||
isEmpty(DTK_NO_TRANSLATION) {
|
||||
# system(lupdate $$_PRO_FILE_) | error("Failed to lupdate")
|
||||
|
||||
TRANSLATIONS = $$files($$ROOT_DIR/translations/*.ts)
|
||||
for(tsfile, TRANSLATIONS) {
|
||||
qmfile = $$replace(tsfile, .ts$, .qm)
|
||||
system(lrelease $$tsfile -qm $$qmfile) | error("Failed to lrelease")
|
||||
}
|
||||
|
||||
# create static translations qrc file
|
||||
!isEmpty(DTK_STATIC_TRANSLATION) {
|
||||
# qrc template
|
||||
#<RCC>
|
||||
# <qresource prefix="/dtk/translations">
|
||||
# <file>dtkwidget_am_ET.qm</file>
|
||||
# <file>dtkwidget_ar.qm</file>
|
||||
# <file>dtkwidget_ast.qm</file>
|
||||
# </qresource>
|
||||
#</RCC>
|
||||
QRC_PATH = $$ROOT_DIR/translations/$${BASENAME}_translations.qrc
|
||||
message ("Create static translations file $${QRC_PATH}")
|
||||
|
||||
QRC_CONTENT = "<RCC>"
|
||||
QRC_CONTENT += " <qresource prefix=\"/dtk/translations\">"
|
||||
|
||||
QM_FILE_LIST = $$files($$ROOT_DIR/translations/*.qm)
|
||||
for(qmfile, QM_FILE_LIST) {
|
||||
QRC_CONTENT += " <file>$$basename(qmfile)</file>"
|
||||
}
|
||||
QRC_CONTENT += " </qresource>"
|
||||
QRC_CONTENT += "</RCC>"
|
||||
write_file($$QRC_PATH, QRC_CONTENT) | error("Aborting.")
|
||||
}
|
||||
}
|
||||
|
||||
!isEmpty(DTK_STATIC_TRANSLATION) {
|
||||
QRC_PATH = $$ROOT_DIR/translations/$${TARGET}_translations.qrc
|
||||
RESOURCES += $$QRC_PATH
|
||||
}
|
||||
|
||||
TRANSLATIONS += $$ROOT_DIR/translations/*
|
||||
|
||||
TRANSLATIONS_DIR = $$LIB_VERSION_NAME/$$DMODULE_NAME/translations
|
||||
TRANSLATIONS_PATH = $$PREFIX/share/$$TRANSLATIONS_DIR
|
||||
DEFINES += $$upper($$DMODULE_NAME)_TRANSLATIONS_PATH=\\\"$$TRANSLATIONS_PATH\\\"
|
||||
DEFINES += $$upper($$DMODULE_NAME)_TRANSLATIONS_DIR=\\\"$$TRANSLATIONS_DIR\\\"
|
||||
|
||||
dtk_translations.path = $$TRANSLATIONS_PATH
|
||||
dtk_translations.files = $$ROOT_DIR/translations/*.qm
|
||||
|
||||
INSTALLS += dtk_translations
|
22
src/src.pro
22
src/src.pro
|
@ -25,7 +25,7 @@ include($$PWD/filesystem/filesystem.pri)
|
|||
include($$PWD/settings/settings.pri)
|
||||
|
||||
DTK_MODULE_NAME = $$TARGET
|
||||
include(dtk_build.prf)
|
||||
load(dtk_build)
|
||||
|
||||
# ----------------------------------------------
|
||||
# install config
|
||||
|
@ -46,23 +46,7 @@ isEmpty(DTK_STATIC_LIB){
|
|||
}
|
||||
|
||||
#cmake
|
||||
include(dtk_cmake.prf)
|
||||
load(dtk_cmake)
|
||||
|
||||
#qt module
|
||||
include(dtk_module.prf)
|
||||
|
||||
prf.files+= $$PWD/*.prf ../dtk_build_config.prf ../tests/dtk_testcase.prf
|
||||
|
||||
isEmpty(MKSPECS_INSTALL_DIR) {
|
||||
MKSPECS_INSTALL_DIR=$$[QT_INSTALL_ARCHDATA]/mkspecs
|
||||
}
|
||||
prf.path = $${MKSPECS_INSTALL_DIR}/features
|
||||
|
||||
!linux {
|
||||
prf.files-=$$PWD/dtk_qmake.prf
|
||||
}
|
||||
|
||||
gsettings.files += $$PWD/com.deepin.dtk.gschema.xml
|
||||
gsettings.path = $${PREFIX}/share/glib-2.0/schemas
|
||||
|
||||
INSTALLS += prf gsettings
|
||||
load(dtk_module)
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
QT += testlib
|
||||
QT -= gui
|
||||
|
||||
TARGET = tst_ddesktopentrytest
|
||||
TEMPLATE = app
|
||||
CONFIG += c++11
|
||||
CONFIG -= app_bundle
|
||||
|
||||
!isEmpty(DTK_STATIC_LIB){
|
||||
DEFINES += DTK_STATIC_LIB
|
||||
}
|
||||
|
||||
load(dtk_testcase)
|
||||
|
||||
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../../src/release/ -ldtkcore -lgtest
|
||||
else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../../src/debug/ -ldtkcore -lgtest
|
||||
else:unix: LIBS += -L$$OUT_PWD/../../src/ -ldtkcore -lgtest
|
||||
|
||||
INCLUDEPATH += $$PWD/../../src
|
||||
DEPENDPATH += $$PWD/../../src
|
||||
unix:QMAKE_RPATHDIR += $$OUT_PWD/../../src
|
||||
|
||||
QMAKE_LFLAGS += -Wl,--export-dynamic
|
||||
|
||||
SOURCES += \
|
||||
$$PWD/../../src/ddesktopentry.cpp \
|
||||
ut_ddesktopentrytest.cpp
|
|
@ -0,0 +1,25 @@
|
|||
QT += testlib concurrent
|
||||
QT -= gui
|
||||
|
||||
TEMPLATE = app
|
||||
CONFIG += c++11
|
||||
|
||||
!isEmpty(DTK_STATIC_LIB){
|
||||
DEFINES += DTK_STATIC_LIB
|
||||
}
|
||||
|
||||
load(dtk_testcase)
|
||||
|
||||
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../../src/release/ -ldtkcore
|
||||
else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../../src/debug/ -ldtkcore
|
||||
else:unix: LIBS += -L$$OUT_PWD/../../src/ -ldtkcore
|
||||
|
||||
INCLUDEPATH += $$PWD/../../src
|
||||
DEPENDPATH += $$PWD/../../src
|
||||
QMAKE_RPATHDIR += $$OUT_PWD/../../src
|
||||
|
||||
QMAKE_LFLAGS += -Wl,--export-dynamic
|
||||
|
||||
SOURCES += \
|
||||
$$PWD/../../src/util/dthreadutils.cpp \
|
||||
ut_dthreadutils.cpp
|
|
@ -1,6 +0,0 @@
|
|||
|
||||
# 执行 make check 会运行 tests
|
||||
CONFIG += testcase no_testcase_installs
|
||||
# 生成统计信息
|
||||
QMAKE_CXXFLAGS += -g -Wall -fprofile-arcs -ftest-coverage -O0
|
||||
QMAKE_LFLAGS += -g -Wall -fprofile-arcs -ftest-coverage -O0
|
|
@ -0,0 +1,54 @@
|
|||
QT += testlib dbus
|
||||
QT -= gui
|
||||
|
||||
TEMPLATE = app
|
||||
CONFIG += c++11
|
||||
|
||||
!isEmpty(DTK_STATIC_LIB){
|
||||
DEFINES += DTK_STATIC_LIB
|
||||
}
|
||||
# 使用 tmp 目录下的 os-version
|
||||
DEFINES += OS_VERSION_TEST_FILE=\\\"/tmp/etc/os-version\\\"
|
||||
|
||||
load(dtk_testcase)
|
||||
|
||||
SOURCES += \
|
||||
$$PWD/../../src/util/dtimeunitformatter.cpp \
|
||||
$$PWD/../../src/util/ddisksizeformatter.cpp \
|
||||
$$PWD/../../src/log/LogManager.cpp \
|
||||
$$PWD/../../src/filesystem/dpathbuf.cpp \
|
||||
$$PWD/../../src/util/ddbussender.cpp \
|
||||
$$PWD/../../src/settings/dsettings.cpp \
|
||||
$$PWD/../../src/settings/dsettingsgroup.cpp \
|
||||
$$PWD/../../src/settings/dsettingsoption.cpp \
|
||||
$$PWD/../../src/dsysinfo.cpp \
|
||||
main.cpp \
|
||||
ut_dutil.cpp \
|
||||
ut_singleton.cpp
|
||||
|
||||
HEADERS += \
|
||||
$$PWD/../../src/util/dtimeunitformatter.h \
|
||||
$$PWD/../../src/util/ddisksizeformatter.h \
|
||||
$$PWD/../../src/log/LogManager.h \
|
||||
$$PWD/../../src/filesystem/dpathbuf.h \
|
||||
$$PWD/../../src/util/ddbussender.h \
|
||||
$$PWD/../../src/settings/dsettings.h \
|
||||
$$PWD/../../src/settings/dsettingsgroup.h \
|
||||
$$PWD/../../src/settings/dsettingsoption.h \
|
||||
$$PWD/../../src/dsysinfo.h \
|
||||
$$PWD/../../src/base/dsingleton.h \
|
||||
ut_dutil.h \
|
||||
ut_singleton.h
|
||||
|
||||
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../../src/release/ -ldtkcore -lgtest
|
||||
else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../../src/debug/ -ldtkcore -lgtest
|
||||
else:unix: LIBS += -L$$OUT_PWD/../../src/ -ldtkcore -lgtest
|
||||
|
||||
INCLUDEPATH += \
|
||||
$$PWD/../../src \
|
||||
$$PWD/../../src/log
|
||||
DEPENDPATH += $$PWD/../../src
|
||||
QMAKE_RPATHDIR += $$PWD/../../src
|
||||
|
||||
RESOURCES += \
|
||||
data.qrc
|
|
@ -0,0 +1,31 @@
|
|||
QT += testlib
|
||||
QT -= gui
|
||||
|
||||
TEMPLATE = app
|
||||
CONFIG += c++11
|
||||
|
||||
# TODO: vtabhook release test failed
|
||||
QMAKE_CXXFLAGS_RELEASE -= -O2
|
||||
|
||||
!isEmpty(DTK_STATIC_LIB){
|
||||
DEFINES += DTK_STATIC_LIB
|
||||
}
|
||||
|
||||
load(dtk_testcase)
|
||||
|
||||
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../../src/release/ -ldtkcore -lgtest
|
||||
else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../../src/debug/ -ldtkcore -lgtest
|
||||
else:unix: LIBS += -L$$OUT_PWD/../../src/ -ldtkcore -lgtest -ldl
|
||||
|
||||
INCLUDEPATH += $$PWD/../../src
|
||||
DEPENDPATH += $$PWD/../../src
|
||||
QMAKE_RPATHDIR += $$OUT_PWD/../../src
|
||||
|
||||
QMAKE_LFLAGS += -Wl,--export-dynamic
|
||||
|
||||
HEADERS += \
|
||||
$$PWD/../../src/util/dvtablehook.h
|
||||
|
||||
SOURCES += \
|
||||
$$PWD/../../src/util/dvtablehook.cpp \
|
||||
ut_dvtablehook.cpp
|
|
@ -14,7 +14,7 @@ INCLUDEPATH += ../../src
|
|||
DESTDIR = $$_PRO_FILE_PWD_/../../bin
|
||||
|
||||
DTK_MODULE_NAME=dtkcore
|
||||
include(../../dtk_build_config.prf)
|
||||
load(dtk_build_config)
|
||||
target.path = $$TOOL_INSTALL_DIR
|
||||
|
||||
INSTALLS += target
|
||||
|
|
|
@ -25,7 +25,7 @@ DEPENDPATH += $$PWD/../../src
|
|||
DESTDIR = $$_PRO_FILE_PWD_/../../bin
|
||||
|
||||
DTK_MODULE_NAME=dtkcore
|
||||
include(../../dtk_build_config.prf)
|
||||
load(dtk_build_config)
|
||||
target.path = $$TOOL_INSTALL_DIR
|
||||
|
||||
scripts.files += ../script/*.py
|
||||
|
|
Loading…
Reference in New Issue