From 4b3faf6c3a2b0827d3686dd13619cddc22d8d067 Mon Sep 17 00:00:00 2001 From: ZhangTingan Date: Tue, 6 Jan 2026 14:20:24 +0800 Subject: [PATCH] fix: [build] build error in 1042 Log: as title --- CMakeLists.txt | 23 +++++++++++++++++++---- reader/CMakeLists.txt | 15 +++++++++++++++ 2 files changed, 34 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c2a5f05e..b6b29406 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -81,7 +81,16 @@ endif() # 查找Qt和DTK find_package(Qt${QT_DESIRED_VERSION} REQUIRED COMPONENTS ${qt_required_components}) -find_package(Dtk${DTK_VERSION_MAJOR} REQUIRED COMPONENTS Widget Gui Core) + +if(DTK_VERSION_MAJOR) + find_package(Dtk${DTK_VERSION_MAJOR} REQUIRED COMPONENTS Widget Gui Core) + set(DTK_USE_TARGETS ON) +else() + find_package(DtkWidget REQUIRED) + find_package(DtkGui REQUIRED) + find_package(DtkCore REQUIRED) + set(DTK_USE_TARGETS OFF) +endif() # 定义链接库 set(LINK_LIBS @@ -93,11 +102,17 @@ set(LINK_LIBS Qt${QT_DESIRED_VERSION}::Svg Qt${QT_DESIRED_VERSION}::Concurrent Qt${QT_DESIRED_VERSION}::Xml - Dtk${DTK_VERSION_MAJOR}::Widget - Dtk${DTK_VERSION_MAJOR}::Gui - Dtk${DTK_VERSION_MAJOR}::Core ) +# Qt6使用命名空间目标,Qt5使用变量 +if(DTK_USE_TARGETS) + list(APPEND LINK_LIBS + Dtk${DTK_VERSION_MAJOR}::Widget + Dtk${DTK_VERSION_MAJOR}::Gui + Dtk${DTK_VERSION_MAJOR}::Core + ) +endif() + # 添加Qt6特有链接库 if (QT_DESIRED_VERSION MATCHES 6) list(APPEND LINK_LIBS Qt${QT_DESIRED_VERSION}::Core5Compat) diff --git a/reader/CMakeLists.txt b/reader/CMakeLists.txt index 0eb9c560..8a7355a9 100644 --- a/reader/CMakeLists.txt +++ b/reader/CMakeLists.txt @@ -81,6 +81,15 @@ target_include_directories(deepin-reader PUBLIC $<$:${XPS_DEPS_INCLUDE_DIRS}> ) +# 使用DTK变量包含目录 +if(NOT QT_VERSION_MAJOR MATCHES 6) + target_include_directories(deepin-reader PUBLIC + ${DtkWidget_INCLUDE_DIRS} + ${DtkGui_INCLUDE_DIRS} + ${DtkCore_INCLUDE_DIRS} + ) +endif() + if (NOT APP_VERSION) set(APP_VERSION "1.0.0") endif() @@ -119,6 +128,12 @@ else() dl pthread ) + # 使用DTK变量而不是目标 + target_link_libraries(deepin-reader PRIVATE + ${DtkWidget_LIBRARIES} + ${DtkGui_LIBRARIES} + ${DtkCore_LIBRARIES} + ) qt5_add_resources(reader_RESOURCES ${CMAKE_SOURCE_DIR}/resources/resources.qrc