fix: CMake Test 依赖改为可选,解决无 Qt6 Test 包环境构建失败

This commit is contained in:
2026-08-08 23:58:49 +08:00
parent da271deea0
commit 34e163c6d2
+8 -1
View File
@@ -6,7 +6,10 @@ set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_AUTOMOC ON)
find_package(Qt6 REQUIRED COMPONENTS Core Quick DBus Network LinguistTools Test)
find_package(Qt6 REQUIRED COMPONENTS Core Quick DBus Network LinguistTools)
# Test 仅用于单元测试目标,非主插件依赖;将其设为可选,
# 避免未安装 Qt6 Test 开发包的环境构建主插件时失败
find_package(Qt6 OPTIONAL_COMPONENTS Test)
find_package(Dtk6 REQUIRED COMPONENTS Core)
find_package(DDEShell REQUIRED)
@@ -68,6 +71,9 @@ install(DIRECTORY package/components DESTINATION /usr/share/dde-shell/${PLUGIN_I
install(FILES ${QM_FILES} DESTINATION /usr/share/dde-shell/${PLUGIN_ID}/translations)
# ---- 单元测试 ----
# 仅当 Qt6 Test 组件存在时才构建测试目标
# 设计原因:Test 为可选组件,未安装 Qt6 Test 开发包的环境仍应能正常构建主插件
if(TARGET Qt6::Test)
# 直接编译源文件到测试可执行文件,避免共享库依赖问题
enable_testing()
add_executable(tst_networkmonitorapplet
@@ -93,3 +99,4 @@ target_compile_definitions(tst_networkmonitorapplet PRIVATE
TRANSLATIONS_DIR="${CMAKE_CURRENT_SOURCE_DIR}/translations"
)
add_test(NAME tst_networkmonitorapplet COMMAND tst_networkmonitorapplet)
endif()