From ed3b86879bb44392b27bd2b5cf43c1b841f8d914 Mon Sep 17 00:00:00 2001 From: tianming-1996 Date: Wed, 12 Aug 2026 11:05:21 +0800 Subject: [PATCH] fix(build): make DConfig optional for 102X-107X compatibility MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Guard DConfig usage with HAVE_DCONFIG so builds succeed on older dtkcore versions that lack the DConfig header. 用#ifdef HAVE_DCONFIG保护DConfig调用,无DConfig头文件时回退到硬编码, 确保102X~107X全版本可编译。 Log: DConfig改为可选依赖,兼容低版本dtkcore Bug: https://pms.uniontech.com/bug-view-372777.html Influence: 解耦应用在102X~107X全版本可正常编译,低版本回退硬编码UFS版本列表。 --- service/CMakeLists.txt | 6 +++++- test/CMakeLists.txt | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/service/CMakeLists.txt b/service/CMakeLists.txt index 91c22d7..97af2aa 100644 --- a/service/CMakeLists.txt +++ b/service/CMakeLists.txt @@ -27,7 +27,11 @@ set(APP_DCONFIG_SCHEMA "${APP_DCONFIG_DIR}/com.deepin.diskmanager.storage.json") find_package(PkgConfig REQUIRED) find_package(DtkCore) if(DtkCore_FOUND) - add_definitions(-DHAVE_DCONFIG) + get_target_property(DTKCORE_INCLUDE_DIRS Dtk::Core INTERFACE_INCLUDE_DIRECTORIES) + find_path(DCONFIG_HEADER_PATH NAMES DConfig PATHS ${DTKCORE_INCLUDE_DIRS}) + if(DCONFIG_HEADER_PATH) + add_definitions(-DHAVE_DCONFIG) + endif() endif() find_package(DtkGui REQUIRED) find_package(Qt5 COMPONENTS diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index f046890..35b7593 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -27,7 +27,11 @@ file(GLOB ALL_SOURCES "../service/diskoperation/*.cpp" "../service/diskoperation find_package(DtkCore) if(DtkCore_FOUND) - add_definitions(-DHAVE_DCONFIG) + get_target_property(DTKCORE_INCLUDE_DIRS Dtk::Core INTERFACE_INCLUDE_DIRECTORIES) + find_path(DCONFIG_HEADER_PATH NAMES DConfig PATHS ${DTKCORE_INCLUDE_DIRS}) + if(DCONFIG_HEADER_PATH) + add_definitions(-DHAVE_DCONFIG) + endif() endif() add_executable(${PROJECT_NAME_TEST} ${SRC_LIST} ${ALL_HEADERS} ${ALL_SOURCES})