Skip to content

Commit fc2a121

Browse files
authored
Enable GMock and improve gtest configuration (#2976)
Our current cmake/gtest.cmake file does not enable gmock. Gmock is needed for matchers that are needed for more readable unit tests. This PR enables gmock and does a little cleanup in gtest.cmake: * Enable BUILD_GMOCK by default (was previously disabled) * Patch gtest-src/googlemock/CMakeLists.txt for broken include path. * Add configuration to gmock if the target is used. No other changes in this PR, but I've verified I can use gmock matchers correctly once I include these changes in other code.
1 parent d2bbca3 commit fc2a121

1 file changed

Lines changed: 22 additions & 5 deletions

File tree

cmake/gtest.cmake

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,17 @@ FetchContent_Declare(
1212
GIT_TAG f8d7d77c06936315286eb55f8de22cd23c188571
1313
)
1414

15+
FetchContent_Populate(GTest)
16+
17+
# Patch googlemock/CMakeLists.txt to fix invalid include path
18+
set(GMOCK_CMAKE "${gtest_SOURCE_DIR}/googlemock/CMakeLists.txt")
19+
file(READ "${GMOCK_CMAKE}" GMOCK_CMAKE_CONTENT)
20+
string(REPLACE [[gtest_SOURCE_DIR}/include]]
21+
[[gtest_SOURCE_DIR}/googletest/include]]
22+
GMOCK_CMAKE_CONTENT
23+
"${GMOCK_CMAKE_CONTENT}")
24+
file(WRITE "${GMOCK_CMAKE}" "${GMOCK_CMAKE_CONTENT}")
25+
1526
# Suppress ROCMChecks WARNING on GoogleTests
1627
set(ROCM_DISABLE_CHECKS FALSE)
1728
macro(rocm_check_toolchain_var var access value list_file)
@@ -24,23 +35,20 @@ if(WIN32)
2435
set(gtest_force_shared_crt ON CACHE_INTERNAL "")
2536
endif()
2637

27-
set(BUILD_GMOCK OFF CACHE INTERNAL "")
38+
set(BUILD_GMOCK ON CACHE INTERNAL "")
2839
set(INSTALL_GTEST OFF CACHE INTERNAL "")
2940

3041
# Store the current value of BUILD_SHARED_LIBS
3142
set(__build_shared_libs ${BUILD_SHARED_LIBS})
3243
set(BUILD_SHARED_LIBS OFF CACHE INTERNAL "")
3344

3445
set(ROCM_DISABLE_CHECKS TRUE)
35-
FetchContent_MakeAvailable(GTest)
46+
add_subdirectory(${gtest_SOURCE_DIR} ${gtest_BINARY_DIR})
3647
set(ROCM_DISABLE_CHECKS FALSE)
3748

3849
# Restore the old value of BUILD_SHARED_LIBS
3950
set(BUILD_SHARED_LIBS ${__build_shared_libs} CACHE BOOL "Type of libraries to build" FORCE)
4051

41-
set(BUILD_GMOCK OFF CACHE INTERNAL "")
42-
set(INSTALL_GTEST OFF CACHE INTERNAL "")
43-
4452
set(GTEST_CXX_FLAGS
4553
-Wno-undef
4654
-Wno-reserved-identifier
@@ -71,3 +79,12 @@ target_compile_options(gtest_main PRIVATE ${GTEST_CXX_FLAGS})
7179
target_compile_definitions(gtest PRIVATE GTEST_HAS_SEH=0)
7280
target_compile_definitions(gtest_main PRIVATE GTEST_HAS_SEH=0)
7381

82+
if(TARGET gmock)
83+
target_compile_options(gmock PRIVATE ${GTEST_CXX_FLAGS})
84+
target_compile_definitions(gmock PRIVATE GTEST_HAS_SEH=0)
85+
endif()
86+
87+
if(TARGET gmock_main)
88+
target_compile_options(gmock_main PRIVATE ${GTEST_CXX_FLAGS})
89+
target_compile_definitions(gmock_main PRIVATE GTEST_HAS_SEH=0)
90+
endif()

0 commit comments

Comments
 (0)