Skip to content
Snippets Groups Projects
Commit 458f4da7 authored by Jens Georg's avatar Jens Georg
Browse files

Make tsan/asan dedicated cmake build types

parent 1cc844a6
No related branches found
No related tags found
No related merge requests found
......@@ -25,22 +25,16 @@
#
#######################################################################################################################
string(TOUPPER "${ENABLE_TSAN}" enable_tsanitizer_uppercase)
IF(enable_tsanitizer_uppercase STREQUAL "TRUE")
message(WARNING "The ENABLE_TSAN set to true. Code coverage cannot be enabled, becasue it requires -O0 flag and ENABLE_TSAN requires -O1.")
ELSE()
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 --coverage")
# The make coverage command is only available in debug mode. Also
# factor in that cmake treats CMAKE_BUILD_TYPE string as case
# insensitive.
string(TOUPPER "${CMAKE_BUILD_TYPE}" build_type_uppercase)
IF(build_type_uppercase STREQUAL "DEBUG")
configure_file(cmake/make_coverage.sh.in
${PROJECT_BINARY_DIR}/make_coverage.sh @ONLY)
add_custom_target(coverage
./make_coverage.sh
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Generating test coverage documentation" VERBATIM)
ENDIF()
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 --coverage")
# The make coverage command is only available in debug mode. Also
# factor in that cmake treats CMAKE_BUILD_TYPE string as case
# insensitive.
string(TOUPPER "${CMAKE_BUILD_TYPE}" build_type_uppercase)
IF(build_type_uppercase STREQUAL "DEBUG")
configure_file(cmake/make_coverage.sh.in
${PROJECT_BINARY_DIR}/make_coverage.sh @ONLY)
add_custom_target(coverage
./make_coverage.sh
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Generating test coverage documentation" VERBATIM)
ENDIF()
......@@ -22,18 +22,18 @@
#######################################################################################################################
include(cmake/enable_latest_cxx_support.cmake)
set(CMAKE_CONFIGURATION_TYPES "Debug;Release;RelWithDebInfo;asan;tsan")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${${PROJECT_NAME}_CXX_FLAGS} -Wall -Wextra -Wshadow -pedantic -Wuninitialized")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O3 -g")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g -O0 --coverage")
set(CMAKE_CXX_FLAGS_TSAN "${CMAKE_CXX_FLAGS} -g -O1 -fsanitize=thread")
set(CMAKE_CXX_FLAGS_ASAN "${CMAKE_CXX_FLAGS} -g -O0 -fsanitize=address -fsanitize=undefined -fsanitize=leak")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${${PROJECT_NAME}_C_FLAGS} -Wall -Wextra -Wshadow -pedantic -Wuninitialized")
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O3")
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -O3 -g")
string(TOUPPER "${ENABLE_TSAN}" enable_tsanitizer_uppercase)
IF(enable_tsanitizer_uppercase STREQUAL "TRUE")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g -O1 -fsanitize=thread")
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O1 -fsanitize=thread")
ELSE()
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g -O0 --coverage")
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 --coverage")
ENDIF()
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 --coverage")
set(CMAKE_C_FLAGS_TSAN "${CMAKE_C_FLAGS} -g -O1 -fsanitize=thread")
set(CMAKE_C_FLAGS_ASAN "${CMAKE_C_FLAGS} -g -O0 -fsanitize=address -fsanitize=undefined -fsanitize=leak")
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment