在 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)
|
||||
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)
|
||||
# macOS 使用 FetchContent 下载 googletest
|
||||
FetchContent_Declare(
|
||||
@ -109,11 +112,14 @@ if(EXISTS "${CMAKE_SOURCE_DIR}/tests")
|
||||
)
|
||||
FetchContent_MakeAvailable(googletest)
|
||||
else()
|
||||
# CentOS 使用系统安装的 gtest
|
||||
find_package(GTest 1.8 REQUIRED)
|
||||
find_package(Threads REQUIRED)
|
||||
# CentOS 也使用 FetchContent 下载 googletest
|
||||
FetchContent_Declare(
|
||||
googletest
|
||||
GIT_REPOSITORY https://github.com/google/googletest.git
|
||||
GIT_TAG v1.15.2
|
||||
)
|
||||
FetchContent_MakeAvailable(googletest)
|
||||
endif()
|
||||
enable_testing()
|
||||
|
||||
# 测试源文件列表
|
||||
set(TEST_SOURCES
|
||||
@ -128,32 +134,13 @@ if(EXISTS "${CMAKE_SOURCE_DIR}/tests")
|
||||
# 创建测试可执行文件
|
||||
add_executable(unit_tests ${TEST_SOURCES})
|
||||
|
||||
if(APPLE)
|
||||
target_link_libraries(unit_tests
|
||||
PRIVATE
|
||||
${PROJECT_NAME}_lib
|
||||
GTest::gtest_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)
|
||||
# 统一 macOS 和 CentOS 的链接设置
|
||||
target_link_libraries(unit_tests
|
||||
PRIVATE
|
||||
${PROJECT_NAME}_lib
|
||||
GTest::gtest_main
|
||||
GTest::gmock_main
|
||||
)
|
||||
endif()
|
||||
|
||||
# 打印配置信息
|
||||
|
||||
Loading…
Reference in New Issue
Block a user