From f33143d0db9066d4c654464f66aba58871e4c81e Mon Sep 17 00:00:00 2001 From: Gleb Mazovetskiy Date: Tue, 31 Oct 2023 10:17:06 +0000 Subject: [PATCH] CMake: Add ASAN and UBSAN (#116) --- CMakeLists.txt | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 45fb995..43b533b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,12 +20,24 @@ set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED YES) set(CMAKE_CXX_EXTENSIONS NO) +option(ASAN "Enable address sanitizer" OFF) +option(UBSAN "Enable undefined behaviour sanitizer" OFF) + if (ANDROID) add_library(${EXECUTABLE_NAME} SHARED) else() add_executable(${EXECUTABLE_NAME} WIN32 MACOSX_BUNDLE) endif() +if(ASAN) + target_compile_options(${EXECUTABLE_NAME} PUBLIC "-fsanitize=address;-fsanitize-recover=address") + target_link_options(${EXECUTABLE_NAME} PUBLIC "-fsanitize=address;-fsanitize-recover=address") +endif() +if(UBSAN) + target_compile_options(${EXECUTABLE_NAME} PUBLIC "-fsanitize=undefined") + target_link_options(${EXECUTABLE_NAME} PUBLIC "-fsanitize=undefined") +endif() + target_include_directories(${EXECUTABLE_NAME} PUBLIC src) target_sources(${EXECUTABLE_NAME} PUBLIC