This repository has been archived on 2025-03-26. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
mqttd/cmake/SetSanitizers.cmake
2024-08-30 11:07:41 -03:00

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)