22 lines
783 B
CMake
22 lines
783 B
CMake
|
if(SPDLOG_SANITIZE_THREAD AND SPDLOG_SANITIZE_ADDRESS)
|
||
|
message(FATAL_ERROR "AddressSanitizer is not compatible with ThreadSanitizer.")
|
||
|
endif()
|
||
|
|
||
|
if(SPDLOG_SANITIZE_ADDRESS)
|
||
|
message(STATUS "AddressSanitizer enabled")
|
||
|
set(SANITIZER_FLAGS "-fsanitize=address,undefined")
|
||
|
add_compile_options("-fno-sanitize=signed-integer-overflow")
|
||
|
endif()
|
||
|
|
||
|
if(SPDLOG_SANITIZE_THREAD)
|
||
|
message(STATUS "ThreadSanitizer enabled")
|
||
|
set(SANITIZER_FLAGS "-fsanitize=thread")
|
||
|
endif()
|
||
|
|
||
|
if(SPDLOG_SANITIZE_THREAD OR SPDLOG_SANITIZE_ADDRESS)
|
||
|
add_compile_options(${SANITIZER_FLAGS})
|
||
|
add_compile_options("-fno-sanitize-recover=all")
|
||
|
add_compile_options("-fno-omit-frame-pointer")
|
||
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${SANITIZER_FLAGS} -fuse-ld=gold")
|
||
|
endif()
|