check asan before use (#30)
This commit is contained in:
parent
fe283787a0
commit
98dfd3bcd3
|
@ -7,6 +7,9 @@ project(yaLanTingLibs
|
|||
)
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
|
||||
message(STATUS "CMAKE_MODULE_PATH: ${CMAKE_MODULE_PATH}")
|
||||
find_package(Threads REQUIRED)
|
||||
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fcoroutines")
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "-O2")
|
||||
|
@ -19,8 +22,14 @@ endif ()
|
|||
message(STATUS "Build type: ${CMAKE_BUILD_TYPE}")
|
||||
if (NOT CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
|
||||
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
message("-- Use flag -fsanitize=address")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address")
|
||||
include(CheckASan)
|
||||
check_asan(HAVE_ASAN)
|
||||
if (HAVE_ASAN)
|
||||
message("-- Use flag -fsanitize=address")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address")
|
||||
else ()
|
||||
message(WARNING "asan not found, you'd better install it for better code security!")
|
||||
endif ()
|
||||
endif ()
|
||||
endif ()
|
||||
option(COVERAGE_TEST "Build with unit test coverage" OFF)
|
||||
|
@ -89,4 +98,4 @@ foreach (proj ${yaLanTingLibs_ENABLE_PROJECTS})
|
|||
endif ()
|
||||
endforeach ()
|
||||
|
||||
install(DIRECTORY include DESTINATION include)
|
||||
install(DIRECTORY include DESTINATION include)
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
macro(CHECK_ASAN _RESULT)
|
||||
include(CheckCXXSourceCompiles)
|
||||
set(CMAKE_REQUIRED_FLAGS "-fsanitize=address")
|
||||
check_cxx_source_compiles(
|
||||
[====[
|
||||
int main()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
]====]
|
||||
${_RESULT}
|
||||
)
|
||||
unset(CMAKE_REQUIRED_FLAGS)
|
||||
endmacro()
|
|
@ -4,7 +4,7 @@ target_include_directories(libcoro_rpc INTERFACE
|
|||
$<BUILD_INTERFACE:${yaLanTingLibs_SOURCE_DIR}/include>
|
||||
$<INSTALL_INTERFACE:include>
|
||||
)
|
||||
find_package(Threads REQUIRED)
|
||||
|
||||
target_link_libraries(libcoro_rpc INTERFACE
|
||||
Threads::Threads
|
||||
asio::asio
|
||||
|
|
Loading…
Reference in New Issue