Skip to content

Commit 6fb8de0

Browse files
committed
Solve issues with gtest on sanitizers.
1 parent 0a6122c commit 6fb8de0

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

cmake/InstallGTest.cmake

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,18 @@ if(NOT GTEST_FOUND OR USE_BUNDLED_GTEST)
3535
set(GTEST_DISABLE_PTHREADS OFF)
3636
endif()
3737

38+
if(MSVC AND (CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo"))
39+
if(OPTION_BUILD_THREAD_SANITIZER)
40+
set(SANITIZER_FLAGS -DCMAKE_CXX_FLAGS=/fsanitize=thread -DCMAKE_C_FLAGS=/fsanitize=thread)
41+
endif()
42+
if(OPTION_BUILD_ADDRESS_SANITIZER)
43+
set(SANITIZER_FLAGS -DCMAKE_CXX_FLAGS=/fsanitize=address -DCMAKE_C_FLAGS=/fsanitize=address)
44+
endif()
45+
if(OPTION_BUILD_MEMORY_SANITIZER)
46+
set(SANITIZER_FLAGS -DCMAKE_CXX_FLAGS="/fsanitize=memory /fsanitize=leak" -DCMAKE_C_FLAGS="/fsanitize=memory /fsanitize=leak")
47+
endif()
48+
endif()
49+
3850
# Import Google Test Framework
3951
ExternalProject_Add(google-test-depends
4052
GIT_REPOSITORY https://github.com/google/googletest.git
@@ -48,6 +60,7 @@ if(NOT GTEST_FOUND OR USE_BUNDLED_GTEST)
4860
-DINSTALL_GTEST=OFF
4961
-DBUILD_GMOCK=ON
5062
-Dgmock_build_tests=OFF
63+
${SANITIZER_FLAGS}
5164
PREFIX "${CMAKE_CURRENT_BINARY_DIR}"
5265
UPDATE_COMMAND ""
5366
INSTALL_COMMAND ""

0 commit comments

Comments
 (0)