Skip to content

Commit 2cae06f

Browse files
committed
Add option to use system GTest library
1 parent 885be02 commit 2cae06f

File tree

1 file changed

+14
-9
lines changed

1 file changed

+14
-9
lines changed

test/CMakeLists.txt

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -33,15 +33,20 @@ set(gtest_hide_internal_symbols ON CACHE INTERNAL "Override gtest default")
3333
set(BUILD_GMOCK OFF CACHE INTERNAL "Override gtest default" FORCE)
3434
set(INSTALL_GTEST OFF CACHE INTERNAL "Override gtest default" FORCE)
3535

36-
include(FetchContent)
37-
FetchContent_Declare(gtest
38-
GIT_REPOSITORY https://github.com/google/googletest.git
39-
GIT_TAG v1.15.2
40-
)
41-
FetchContent_MakeAvailable(gtest)
36+
option(ST_USE_SYSTEM_GTEST "Find the GoogleTest library from the system rather than fetching it" OFF)
37+
if(ST_USE_SYSTEM_GTEST)
38+
find_package(GTest REQUIRED)
39+
else()
40+
include(FetchContent)
41+
FetchContent_Declare(gtest
42+
GIT_REPOSITORY https://github.com/google/googletest.git
43+
GIT_TAG v1.15.2
44+
)
45+
FetchContent_MakeAvailable(gtest)
46+
endif()
4247

4348
add_executable(st_gtests "")
44-
target_link_libraries(st_gtests PRIVATE gtest gtest_main string_theory)
49+
target_link_libraries(st_gtests PRIVATE GTest::gtest GTest::gtest_main string_theory)
4550
target_include_directories(st_gtests PRIVATE
4651
${GTEST_INCLUDE_DIR}
4752
${gtest_SOURCE_DIR}/include
@@ -51,12 +56,12 @@ target_include_directories(st_gtests PRIVATE
5156
if(WIN32 AND BUILD_SHARED_LIBS)
5257
add_custom_command(TARGET st_gtests POST_BUILD
5358
COMMAND ${CMAKE_COMMAND} -E copy_if_different
54-
"$<TARGET_FILE:gtest>"
59+
"$<TARGET_FILE:GTest::gtest>"
5560
"$<TARGET_FILE_DIR:st_gtests>"
5661
)
5762
add_custom_command(TARGET st_gtests POST_BUILD
5863
COMMAND ${CMAKE_COMMAND} -E copy_if_different
59-
"$<TARGET_FILE:gtest_main>"
64+
"$<TARGET_FILE:GTest::gtest_main>"
6065
"$<TARGET_FILE_DIR:st_gtests>"
6166
)
6267
endif()

0 commit comments

Comments
 (0)