在 centos 不编译测试代码

This commit is contained in:
Tian jianyong 2024-12-20 17:18:18 +08:00
parent 815fb10301
commit 82e143c8df

View File

@ -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()
#