28 lines
868 B
CMake
28 lines
868 B
CMake
include(CheckCXXCompilerFlag)
|
|
|
|
# Flag para o AddressSanitizer
|
|
set(CMAKE_REQUIRED_FLAGS "-fsanitize=address")
|
|
check_cxx_compiler_flag("-fsanitize=address" COMPILER_SUPPORTS_ASAN)
|
|
if(COMPILER_SUPPORTS_ASAN)
|
|
set(SANITIZE_FLAGS ${SANITIZE_FLAGS} -fsanitize=address)
|
|
endif()
|
|
|
|
# Flag para o UndefinedBehaviorSanitizer
|
|
set(CMAKE_REQUIRED_FLAGS "-fsanitize=undefined")
|
|
check_cxx_compiler_flag("-fsanitize=undefined" COMPILER_SUPPORTS_UBSAN)
|
|
if(COMPILER_SUPPORTS_UBSAN)
|
|
set(SANITIZE_FLAGS ${SANITIZE_FLAGS} -fsanitize=undefined)
|
|
endif()
|
|
|
|
# Flag para o UndefinedBehaviorSanitizer
|
|
set(CMAKE_REQUIRED_FLAGS "-fsanitize=leak")
|
|
check_cxx_compiler_flag("-fsanitize=leak" COMPILER_SUPPORTS_LSAN)
|
|
if(COMPILER_SUPPORTS_LSAN)
|
|
set(SANITIZE_FLAGS ${SANITIZE_FLAGS} -fsanitize=leak)
|
|
endif()
|
|
|
|
# Limpa as flags temporárias
|
|
unset(CMAKE_REQUIRED_FLAGS)
|
|
|
|
mark_as_advanced(SANITIZE_FLAGS)
|