Skip to content

Commit 45ad0e2

Browse files
authored
Merge pull request #20 from cisco/paulej_fetch_gtest
Fetch GoogleTest if not installed
2 parents ea2d82d + bb8b9fa commit 45ad0e2

File tree

11 files changed

+31
-16
lines changed

11 files changed

+31
-16
lines changed

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ project(libgse
1515
DESCRIPTION "Game State Encoder Library"
1616
LANGUAGES CXX)
1717

18+
add_subdirectory(dependencies)
1819
add_subdirectory(src)
1920

2021
include(CTest)

dependencies/CMakeLists.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
if(gse_BUILD_TESTS)
2+
find_package(GTest)
3+
4+
if(NOT GTest_FOUND)
5+
message(STATUS "Fetching GTest since it is not available on the system")
6+
add_subdirectory(googletest)
7+
endif()
8+
endif()
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
include(FetchContent)
2+
3+
FetchContent_Declare(GTest
4+
GIT_REPOSITORY https://github.com/google/googletest.git
5+
GIT_TAG v1.13.0
6+
OVERRIDE_FIND_PACKAGE)
7+
8+
if(WIN32)
9+
# For Windows: Prevent overriding the parent project's
10+
# compiler/linker settings
11+
# (https://github.com/google/googletest/tree/v1.13.0/googletest)
12+
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
13+
endif()
14+
15+
# Prevent GTest from installing
16+
set(INSTALL_GTEST OFF CACHE INTERNAL "Disable gtest installation")
17+
18+
FetchContent_MakeAvailable(GTest)
19+
20+
add_library(GTest::GTest INTERFACE IMPORTED GLOBAL)
21+
add_library(GTest::Main INTERFACE IMPORTED GLOBAL)
22+
target_link_libraries(GTest::GTest INTERFACE gtest_main)

test/test_databuffer/CMakeLists.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ set_target_properties(test_databuffer
66
CXX_STANDARD_REQUIRED YES
77
CXX_EXTENSIONS NO)
88

9-
include(GoogleTest)
10-
119
target_link_libraries(test_databuffer PRIVATE gse GTest::GTest GTest::Main)
1210

1311
add_test(NAME test_databuffer

test/test_float/CMakeLists.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ set_target_properties(test_float
66
CXX_STANDARD_REQUIRED YES
77
CXX_EXTENSIONS NO)
88

9-
include(GoogleTest)
10-
119
target_link_libraries(test_float PRIVATE GTest::GTest GTest::Main)
1210

1311
add_test(NAME test_float

test/test_gs_api/CMakeLists.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ set_target_properties(test_gs_api
66
CXX_STANDARD_REQUIRED YES
77
CXX_EXTENSIONS NO)
88

9-
include(GoogleTest)
10-
119
target_link_libraries(test_gs_api PRIVATE gse GTest::GTest GTest::Main)
1210

1311
add_test(NAME test_gs_api

test/test_gs_decoder/CMakeLists.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ set_target_properties(test_gs_decoder
66
CXX_STANDARD_REQUIRED YES
77
CXX_EXTENSIONS NO)
88

9-
include(GoogleTest)
10-
119
target_link_libraries(test_gs_decoder PRIVATE gse GTest::GTest GTest::Main)
1210

1311
add_test(NAME test_gs_decoder

test/test_gs_deserializer/CMakeLists.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@ set_target_properties(test_gs_deserializer
88

99
target_include_directories(test_gs_deserializer PRIVATE ${CMAKE_SOURCE_DIR}/src/gse/src)
1010

11-
include(GoogleTest)
12-
1311
target_link_libraries(test_gs_deserializer PRIVATE gse GTest::GTest GTest::Main)
1412

1513
add_test(NAME test_gs_deserializer

test/test_gs_encoder/CMakeLists.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ set_target_properties(test_gs_encoder
66
CXX_STANDARD_REQUIRED YES
77
CXX_EXTENSIONS NO)
88

9-
include(GoogleTest)
10-
119
target_link_libraries(test_gs_encoder PRIVATE gse GTest::GTest GTest::Main)
1210

1311
add_test(NAME test_gs_encoder

test/test_gs_serializer/CMakeLists.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ set_target_properties(test_gs_serializer
66
CXX_STANDARD_REQUIRED YES
77
CXX_EXTENSIONS NO)
88

9-
include(GoogleTest)
10-
119
target_link_libraries(test_gs_serializer PRIVATE gse GTest::GTest GTest::Main)
1210

1311
add_test(NAME test_gs_serializer

0 commit comments

Comments
 (0)