googletest.cmake 1.74 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
include(FetchContent)

set(GOOGLETEST_DIR "" CACHE STRING "Location of local GoogleTest repo to build against")

if(GOOGLETEST_DIR)
  set(FETCHCONTENT_SOURCE_DIR_GOOGLETEST ${GOOGLETEST_DIR} CACHE STRING "GoogleTest source directory override")
endif()

message(STATUS "Fetching GoogleTest")

11
list(APPEND GTEST_CMAKE_CXX_FLAGS
12
13
14
15
16
17
18
19
20
     -Wno-undef
     -Wno-reserved-identifier
     -Wno-global-constructors
     -Wno-missing-noreturn
     -Wno-disabled-macro-expansion
     -Wno-used-but-marked-unused
     -Wno-switch-enum
     -Wno-zero-as-null-pointer-constant
     -Wno-unused-member-function
Adam Osewski's avatar
Adam Osewski committed
21
     -Wno-comma
JD's avatar
JD committed
22
     -Wno-old-style-cast
23
     -Wno-deprecated
24
     -Wno-unsafe-buffer-usage
25
26
27
28
29
)
message(STATUS "Suppressing googltest warnings with flags: ${GTEST_CMAKE_CXX_FLAGS}")

FetchContent_Declare(
  googletest
yangql's avatar
yangql committed
30
31
  GIT_REPOSITORY http://developer.hpccube.com/codes/yangql/googletest.git
  GIT_TAG        65cfeca1a1eebca291b59395f79a60a4497d0f73
32
33
34
35
)

# Will be necessary for windows build
# set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
36
37
38
39
40
FetchContent_GetProperties(googletest)
if(NOT googletest_POPULATED)
  FetchContent_Populate(googletest)
  add_subdirectory(${googletest_SOURCE_DIR} ${googletest_BINARY_DIR} EXCLUDE_FROM_ALL)
endif()
41
42
43

target_compile_options(gtest PRIVATE ${GTEST_CMAKE_CXX_FLAGS})
target_compile_options(gtest_main PRIVATE ${GTEST_CMAKE_CXX_FLAGS})
Adam Osewski's avatar
Adam Osewski committed
44
target_compile_options(gmock PRIVATE ${GTEST_CMAKE_CXX_FLAGS})
JD's avatar
JD committed
45
target_compile_options(gmock_main PRIVATE ${GTEST_CMAKE_CXX_FLAGS})
Adam Osewski's avatar
Adam Osewski committed
46
47
48
49
50

set_target_properties(gtest PROPERTIES POSITION_INDEPENDENT_CODE ON)
set_target_properties(gtest_main PROPERTIES POSITION_INDEPENDENT_CODE ON)
set_target_properties(gmock PROPERTIES POSITION_INDEPENDENT_CODE ON)
set_target_properties(gmock_main PROPERTIES POSITION_INDEPENDENT_CODE ON)