fix: CMake Test 依赖改为可选,解决无 Qt6 Test 包环境构建失败
This commit is contained in:
+33
-26
@@ -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,28 +71,32 @@ install(DIRECTORY package/components DESTINATION /usr/share/dde-shell/${PLUGIN_I
|
||||
install(FILES ${QM_FILES} DESTINATION /usr/share/dde-shell/${PLUGIN_ID}/translations)
|
||||
|
||||
# ---- 单元测试 ----
|
||||
# 直接编译源文件到测试可执行文件,避免共享库依赖问题
|
||||
enable_testing()
|
||||
add_executable(tst_networkmonitorapplet
|
||||
tests/tst_networkmonitorapplet.cpp
|
||||
src/networkmonitorapplet.cpp
|
||||
src/networkmonitorapplet.h
|
||||
)
|
||||
target_link_libraries(tst_networkmonitorapplet PRIVATE
|
||||
Qt6::Test
|
||||
Qt6::Core
|
||||
Qt6::Quick
|
||||
Qt6::DBus
|
||||
Qt6::Network
|
||||
Dtk6::Core
|
||||
Dde::Shell
|
||||
)
|
||||
target_include_directories(tst_networkmonitorapplet PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src
|
||||
/usr/include/dde-shell
|
||||
)
|
||||
target_compile_definitions(tst_networkmonitorapplet PRIVATE
|
||||
PROJECT_VERSION="${PROJECT_VERSION}"
|
||||
TRANSLATIONS_DIR="${CMAKE_CURRENT_SOURCE_DIR}/translations"
|
||||
)
|
||||
add_test(NAME tst_networkmonitorapplet COMMAND tst_networkmonitorapplet)
|
||||
# 仅当 Qt6 Test 组件存在时才构建测试目标
|
||||
# 设计原因:Test 为可选组件,未安装 Qt6 Test 开发包的环境仍应能正常构建主插件
|
||||
if(TARGET Qt6::Test)
|
||||
# 直接编译源文件到测试可执行文件,避免共享库依赖问题
|
||||
enable_testing()
|
||||
add_executable(tst_networkmonitorapplet
|
||||
tests/tst_networkmonitorapplet.cpp
|
||||
src/networkmonitorapplet.cpp
|
||||
src/networkmonitorapplet.h
|
||||
)
|
||||
target_link_libraries(tst_networkmonitorapplet PRIVATE
|
||||
Qt6::Test
|
||||
Qt6::Core
|
||||
Qt6::Quick
|
||||
Qt6::DBus
|
||||
Qt6::Network
|
||||
Dtk6::Core
|
||||
Dde::Shell
|
||||
)
|
||||
target_include_directories(tst_networkmonitorapplet PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src
|
||||
/usr/include/dde-shell
|
||||
)
|
||||
target_compile_definitions(tst_networkmonitorapplet PRIVATE
|
||||
PROJECT_VERSION="${PROJECT_VERSION}"
|
||||
TRANSLATIONS_DIR="${CMAKE_CURRENT_SOURCE_DIR}/translations"
|
||||
)
|
||||
add_test(NAME tst_networkmonitorapplet COMMAND tst_networkmonitorapplet)
|
||||
endif()
|
||||
Reference in New Issue
Block a user