mirror of
https://github.com/triqs/dft_tools
synced 2024-12-22 20:34:38 +01:00
[cmake] Include build options for TSAN and MSAN
This commit is contained in:
parent
b463d5efe6
commit
089a5f5ab2
@ -49,7 +49,7 @@ if(ANALYZE_SOURCES)
|
|||||||
TARGET ${PROJECT_NAME}_c
|
TARGET ${PROJECT_NAME}_c
|
||||||
COMMAND ${CPPCHECK_EXECUTABLE}
|
COMMAND ${CPPCHECK_EXECUTABLE}
|
||||||
--enable=warning,style,performance,portability
|
--enable=warning,style,performance,portability
|
||||||
--std=c++20
|
--std=c++23
|
||||||
--template=gcc
|
--template=gcc
|
||||||
--verbose
|
--verbose
|
||||||
--force
|
--force
|
||||||
@ -64,21 +64,28 @@ if(ANALYZE_SOURCES)
|
|||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
# ========= Dynamic Analyzer Checks ==========
|
# ========= Dynamic Analyzer Checks ==========
|
||||||
|
|
||||||
option(ASAN OFF "Compile library and executables with LLVM Address Sanitizer")
|
option(ASAN OFF "Compile library and executables with LLVM Address Sanitizer")
|
||||||
option(UBSAN OFF "Compile library and executables with LLVM Undefined Behavior Sanitizer")
|
|
||||||
|
|
||||||
if(ASAN)
|
if(ASAN)
|
||||||
if(NOT TARGET asan)
|
find_package(sanitizer REQUIRED COMPONENTS asan)
|
||||||
find_package(sanitizer REQUIRED "asan")
|
|
||||||
endif()
|
|
||||||
target_link_libraries(${PROJECT_NAME}_c PUBLIC $<BUILD_INTERFACE:asan>)
|
target_link_libraries(${PROJECT_NAME}_c PUBLIC $<BUILD_INTERFACE:asan>)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
option(UBSAN OFF "Compile library and executables with LLVM Undefined Behavior Sanitizer")
|
||||||
if(UBSAN)
|
if(UBSAN)
|
||||||
if(NOT TARGET ubsan)
|
find_package(sanitizer REQUIRED COMPONENTS ubsan)
|
||||||
find_package(sanitizer REQUIRED "ubsan")
|
|
||||||
endif()
|
|
||||||
target_link_libraries(${PROJECT_NAME}_c PUBLIC $<BUILD_INTERFACE:ubsan>)
|
target_link_libraries(${PROJECT_NAME}_c PUBLIC $<BUILD_INTERFACE:ubsan>)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
option(MSAN OFF "Compile library and executables with LLVM Memory Sanitizer")
|
||||||
|
if(MSAN)
|
||||||
|
find_package(sanitizer REQUIRED COMPONENTS msan)
|
||||||
|
target_link_libraries(${PROJECT_NAME}_c PUBLIC $<BUILD_INTERFACE:msan>)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
option(TSAN OFF "Compile library and executables with LLVM Thread Sanitizer")
|
||||||
|
if(TSAN)
|
||||||
|
find_package(sanitizer REQUIRED COMPONENTS tsan)
|
||||||
|
target_link_libraries(${PROJECT_NAME}_c PUBLIC $<BUILD_INTERFACE:tsan>)
|
||||||
|
endif()
|
||||||
|
Loading…
Reference in New Issue
Block a user