basic project
This commit is contained in:
34
cmake/SanitizerSetup.cmake
Normal file
34
cmake/SanitizerSetup.cmake
Normal file
@@ -0,0 +1,34 @@
|
||||
set(_TV2HV_CORE_WANTED_SANITIZERS "")
|
||||
|
||||
if("asan" IN_LIST TV2HV_BUILD_FEATURES)
|
||||
# Error if someone's trying to mix asan and tsan together,
|
||||
# they aren't compatible.
|
||||
if("tsan" IN_LIST TV2HV_BUILD_FEATURES)
|
||||
message(FATAL_ERROR "ASAN and TSAN cannot be used together.")
|
||||
endif()
|
||||
|
||||
message(STATUS "Enabling ASAN because it was in TV2HV_BUILD_FEATURES")
|
||||
list(APPEND _TV2HV_CORE_WANTED_SANITIZERS "address")
|
||||
endif()
|
||||
|
||||
if("tsan" IN_LIST TV2HV_BUILD_FEATURES)
|
||||
if("asan" IN_LIST TV2HV_BUILD_FEATURES)
|
||||
message(FATAL_ERROR "ASAN and TSAN cannot be used together.")
|
||||
endif()
|
||||
|
||||
message(STATUS "Enabling TSAN because it was in TV2HV_BUILD_FEATURES")
|
||||
list(APPEND _TV2HV_CORE_WANTED_SANITIZERS "thread")
|
||||
endif()
|
||||
|
||||
if("ubsan" IN_LIST TV2HV_BUILD_FEATURES)
|
||||
message(STATUS "Enabling UBSAN because it was in TV2HV_BUILD_FEATURES")
|
||||
list(APPEND _TV2HV_CORE_WANTED_SANITIZERS "undefined")
|
||||
endif()
|
||||
|
||||
list(LENGTH _TV2HV_CORE_WANTED_SANITIZERS _TV2HV_CORE_WANTED_SANITIZERS_LENGTH)
|
||||
if(NOT _TV2HV_CORE_WANTED_SANITIZERS_LENGTH EQUAL 0)
|
||||
list(JOIN _TV2HV_CORE_WANTED_SANITIZERS "," _TV2HV_CORE_WANTED_SANITIZERS_ARG)
|
||||
message(STATUS "Enabled sanitizers: ${_TV2HV_CORE_WANTED_SANITIZERS_ARG}")
|
||||
set(TV2HV_CORE_COMPILE_ARGS "${TV2HV_CORE_COMPILE_ARGS} -fsanitize=${_TV2HV_CORE_WANTED_SANITIZERS_ARG}")
|
||||
set(TV2HV_CORE_LINKER_ARGS "${TV2HV_CORE_LINKER_ARGS} -fsanitize=${_TV2HV_CORE_WANTED_SANITIZERS_ARG}")
|
||||
endif()
|
||||
Reference in New Issue
Block a user