在 centos 不编译测试代码
This commit is contained in:
parent
815fb10301
commit
82e143c8df
@ -98,8 +98,11 @@ target_link_libraries(${PROJECT_NAME}_lib
|
|||||||
add_executable(${PROJECT_NAME} src/main.cpp)
|
add_executable(${PROJECT_NAME} src/main.cpp)
|
||||||
target_link_libraries(${PROJECT_NAME} PRIVATE ${PROJECT_NAME}_lib)
|
target_link_libraries(${PROJECT_NAME} PRIVATE ${PROJECT_NAME}_lib)
|
||||||
|
|
||||||
|
# 添加一个选项来控制是否编译测试
|
||||||
|
option(BUILD_TESTS "Build test cases" ON)
|
||||||
|
|
||||||
# 添加测试
|
# 添加测试
|
||||||
if(EXISTS "${CMAKE_SOURCE_DIR}/tests")
|
if(BUILD_TESTS AND EXISTS "${CMAKE_SOURCE_DIR}/tests")
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
# macOS 使用 FetchContent 下载 googletest
|
# macOS 使用 FetchContent 下载 googletest
|
||||||
FetchContent_Declare(
|
FetchContent_Declare(
|
||||||
@ -109,11 +112,14 @@ if(EXISTS "${CMAKE_SOURCE_DIR}/tests")
|
|||||||
)
|
)
|
||||||
FetchContent_MakeAvailable(googletest)
|
FetchContent_MakeAvailable(googletest)
|
||||||
else()
|
else()
|
||||||
# CentOS 使用系统安装的 gtest
|
# CentOS 也使用 FetchContent 下载 googletest
|
||||||
find_package(GTest 1.8 REQUIRED)
|
FetchContent_Declare(
|
||||||
find_package(Threads REQUIRED)
|
googletest
|
||||||
|
GIT_REPOSITORY https://github.com/google/googletest.git
|
||||||
|
GIT_TAG v1.15.2
|
||||||
|
)
|
||||||
|
FetchContent_MakeAvailable(googletest)
|
||||||
endif()
|
endif()
|
||||||
enable_testing()
|
|
||||||
|
|
||||||
# 测试源文件列表
|
# 测试源文件列表
|
||||||
set(TEST_SOURCES
|
set(TEST_SOURCES
|
||||||
@ -128,32 +134,13 @@ if(EXISTS "${CMAKE_SOURCE_DIR}/tests")
|
|||||||
# 创建测试可执行文件
|
# 创建测试可执行文件
|
||||||
add_executable(unit_tests ${TEST_SOURCES})
|
add_executable(unit_tests ${TEST_SOURCES})
|
||||||
|
|
||||||
if(APPLE)
|
# 统一 macOS 和 CentOS 的链接设置
|
||||||
target_link_libraries(unit_tests
|
target_link_libraries(unit_tests
|
||||||
PRIVATE
|
PRIVATE
|
||||||
${PROJECT_NAME}_lib
|
${PROJECT_NAME}_lib
|
||||||
GTest::gtest_main
|
GTest::gtest_main
|
||||||
GTest::gmock_main
|
GTest::gmock_main
|
||||||
)
|
)
|
||||||
else()
|
|
||||||
target_link_libraries(unit_tests
|
|
||||||
PRIVATE
|
|
||||||
${PROJECT_NAME}_lib
|
|
||||||
gtest
|
|
||||||
gtest_main
|
|
||||||
gmock
|
|
||||||
gmock_main
|
|
||||||
${CMAKE_THREAD_LIBS_INIT}
|
|
||||||
)
|
|
||||||
target_include_directories(unit_tests
|
|
||||||
PRIVATE
|
|
||||||
${GTEST_INCLUDE_DIRS}
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# 添加测试
|
|
||||||
include(GoogleTest)
|
|
||||||
gtest_discover_tests(unit_tests)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# 打印配置信息
|
# 打印配置信息
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user