kopia lustrzana https://github.com/f4exb/sdrangel
CMake: Add support for ASAN on MSVC
rodzic
465944f671
commit
d315026f37
|
@ -1,4 +1,4 @@
|
|||
cmake_minimum_required(VERSION 3.10.0)
|
||||
cmake_minimum_required(VERSION 3.13.0)
|
||||
|
||||
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
|
||||
|
||||
|
@ -287,11 +287,21 @@ endif()
|
|||
|
||||
if (SANITIZE_ADDRESS)
|
||||
message(STATUS "Activate address sanitization")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address")
|
||||
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -fsanitize=address")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fsanitize=address")
|
||||
set(CMAKE_STATIC_LINKER_FLAGS "${CMAKE_STATIC_LINKER_FLAGS} -fsanitize=address")
|
||||
if(MSVC)
|
||||
set(ASAN_LIB_ARCH ${MSVC_CXX_ARCHITECTURE_ID})
|
||||
string(TOLOWER ${ASAN_LIB_ARCH} ASAN_LIB_ARCH)
|
||||
if(ASAN_LIB_ARCH STREQUAL "x86")
|
||||
set(ASAN_LIB_ARCH "i386")
|
||||
elseif(ASAN_LIB_ARCH STREQUAL "x64")
|
||||
set(ASAN_LIB_ARCH "x86_64")
|
||||
endif()
|
||||
add_compile_options(/fsanitize=address)
|
||||
link_libraries(clang_rt.asan_dynamic-${ASAN_LIB_ARCH} clang_rt.asan_dynamic_runtime_thunk-${ASAN_LIB_ARCH})
|
||||
add_link_options(/wholearchive:clang_rt.asan_dynamic_runtime_thunk-${ASAN_LIB_ARCH}.lib)
|
||||
else()
|
||||
add_compile_options(-fsanitize=address -fno-omit-frame-pointer -g)
|
||||
add_link_options(-fsanitize=address)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (C_CLANG OR C_GCC)
|
||||
|
|
Ładowanie…
Reference in New Issue