cmake/utils.cmake (42 lines of code) (raw):
macro(check_asan _RESULT)
include(CheckCXXSourceRuns)
set(CMAKE_REQUIRED_FLAGS "-fsanitize=address")
check_cxx_source_runs(
[====[
int main()
{
return 0;
}
]====]
${_RESULT}
)
unset(CMAKE_REQUIRED_FLAGS)
endmacro()
macro(check_lld _RESULT)
include(CheckCXXSourceRuns)
set(CMAKE_REQUIRED_FLAGS "-fuse-ld=lld")
check_cxx_source_runs(
[====[
int main()
{
return 0;
}
]====]
${_RESULT}
)
unset(CMAKE_REQUIRED_FLAGS)
endmacro()
macro(check_tsan _RESULT)
include(CheckCXXSourceRuns)
set(CMAKE_REQUIRED_FLAGS "-fsanitize=thread")
check_cxx_source_runs(
[====[
int main()
{
return 0;
}
]====]
${_RESULT}
)
unset(CMAKE_REQUIRED_FLAGS)
endmacro()