From 72427a6a3cc9d3dbc77b2dbeaf49d4daf0787129 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20KUBLER?= <gregoire.kubler@proton.me> Date: Fri, 8 Mar 2024 16:49:45 +0100 Subject: [PATCH] Feat : add ASAN support --- CMakeLists.txt | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 51a6ebe1..b8ba6097 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,6 +18,7 @@ option(PYBIND "python binding" ON) option(WERROR "Warning as error" OFF) option(TEST "Enable tests" ON) option(COVERAGE "Enable coverage" OFF) +option(ENABLE_ASAN "Enable ASan (adress sanitizer) for runtime analysis of memory use (over/underflow, memory leak, ...)" OFF) ############################################## # Import utils CMakeLists @@ -34,7 +35,6 @@ find_package(aidge_core REQUIRED) ############################################## # Create target and set properties - file(GLOB_RECURSE src_files "src/*.cpp") file(GLOB_RECURSE inc_files "include/*.hpp") @@ -43,9 +43,23 @@ target_link_libraries(${module_name} PUBLIC _aidge_core # _ is added because we link the target not the project ) + #Set target properties set_property(TARGET ${module_name} PROPERTY POSITION_INDEPENDENT_CODE ON) +set(ENABLE_ASAN OFF) +if( ${ENABLE_ASAN} ) + set(SANITIZE_FLAGS -fsanitize=address -fno-omit-frame-pointer) + target_link_libraries(${module_name} + PUBLIC + -fsanitize=address + ) + target_compile_options(${module_name} + PRIVATE + ${SANITIZE_FLAGS} + ) +endif() + target_include_directories(${module_name} PUBLIC $<INSTALL_INTERFACE:include> -- GitLab