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_CXX_STANDARD_REQUIRED ON)
|
||||||
set(CMAKE_AUTOMOC 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(Dtk6 REQUIRED COMPONENTS Core)
|
||||||
find_package(DDEShell REQUIRED)
|
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)
|
install(FILES ${QM_FILES} DESTINATION /usr/share/dde-shell/${PLUGIN_ID}/translations)
|
||||||
|
|
||||||
# ---- 单元测试 ----
|
# ---- 单元测试 ----
|
||||||
# 直接编译源文件到测试可执行文件,避免共享库依赖问题
|
# 仅当 Qt6 Test 组件存在时才构建测试目标
|
||||||
enable_testing()
|
# 设计原因:Test 为可选组件,未安装 Qt6 Test 开发包的环境仍应能正常构建主插件
|
||||||
add_executable(tst_networkmonitorapplet
|
if(TARGET Qt6::Test)
|
||||||
tests/tst_networkmonitorapplet.cpp
|
# 直接编译源文件到测试可执行文件,避免共享库依赖问题
|
||||||
src/networkmonitorapplet.cpp
|
enable_testing()
|
||||||
src/networkmonitorapplet.h
|
add_executable(tst_networkmonitorapplet
|
||||||
)
|
tests/tst_networkmonitorapplet.cpp
|
||||||
target_link_libraries(tst_networkmonitorapplet PRIVATE
|
src/networkmonitorapplet.cpp
|
||||||
Qt6::Test
|
src/networkmonitorapplet.h
|
||||||
Qt6::Core
|
)
|
||||||
Qt6::Quick
|
target_link_libraries(tst_networkmonitorapplet PRIVATE
|
||||||
Qt6::DBus
|
Qt6::Test
|
||||||
Qt6::Network
|
Qt6::Core
|
||||||
Dtk6::Core
|
Qt6::Quick
|
||||||
Dde::Shell
|
Qt6::DBus
|
||||||
)
|
Qt6::Network
|
||||||
target_include_directories(tst_networkmonitorapplet PRIVATE
|
Dtk6::Core
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/src
|
Dde::Shell
|
||||||
/usr/include/dde-shell
|
)
|
||||||
)
|
target_include_directories(tst_networkmonitorapplet PRIVATE
|
||||||
target_compile_definitions(tst_networkmonitorapplet PRIVATE
|
${CMAKE_CURRENT_SOURCE_DIR}/src
|
||||||
PROJECT_VERSION="${PROJECT_VERSION}"
|
/usr/include/dde-shell
|
||||||
TRANSLATIONS_DIR="${CMAKE_CURRENT_SOURCE_DIR}/translations"
|
)
|
||||||
)
|
target_compile_definitions(tst_networkmonitorapplet PRIVATE
|
||||||
add_test(NAME tst_networkmonitorapplet COMMAND tst_networkmonitorapplet)
|
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