Skip to content
Snippets Groups Projects
Commit 7ab576f9 authored by Tomasz Kozak's avatar Tomasz Kozak
Browse files

Add support for USE_TSAN flag according to https://github.com/ChimeraTK/project-template/issues/13

parent 5e1b6c72
No related branches found
No related tags found
No related merge requests found
...@@ -25,19 +25,22 @@ ...@@ -25,19 +25,22 @@
# #
####################################################################################################################### #######################################################################################################################
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 --coverage") string(TOUPPER "${USE_TSAN}" use_tsanitizer_uppercase)
IF(use_tsanitizer_uppercase STREQUAL "TRUE")
# The make coverage command is only available in debug mode. Also message(WARNING "The USE_TSAN set to true. Code coverage cannot be enabled, becasue it requires -O0 flag and USE_TSAN requires -O1.")
# factor in that cmake treats CMAKE_BUILD_TYPE string as case ELSE()
# insensitive. set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 --coverage")
string(TOUPPER "${CMAKE_BUILD_TYPE}" build_type_uppercase) # The make coverage command is only available in debug mode. Also
IF(build_type_uppercase STREQUAL "DEBUG") # factor in that cmake treats CMAKE_BUILD_TYPE string as case
configure_file(cmake/make_coverage.sh.in # insensitive.
${PROJECT_BINARY_DIR}/make_coverage.sh @ONLY) string(TOUPPER "${CMAKE_BUILD_TYPE}" build_type_uppercase)
add_custom_target(coverage IF(build_type_uppercase STREQUAL "DEBUG")
./make_coverage.sh configure_file(cmake/make_coverage.sh.in
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} ${PROJECT_BINARY_DIR}/make_coverage.sh @ONLY)
COMMENT "Generating test coverage documentation" VERBATIM add_custom_target(coverage
) ./make_coverage.sh
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Generating test coverage documentation" VERBATIM)
ENDIF()
ENDIF() ENDIF()
...@@ -23,10 +23,17 @@ ...@@ -23,10 +23,17 @@
include(cmake/enable_latest_cxx_support.cmake) include(cmake/enable_latest_cxx_support.cmake)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${${PROJECT_NAME}_CXX_FLAGS} -Wall -Wextra -Wshadow -pedantic -Wuninitialized") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${${PROJECT_NAME}_CXX_FLAGS} -Wall -Wextra -Wshadow -pedantic -Wuninitialized")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 --coverage")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3") 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_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O3 -g")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${${PROJECT_NAME}_C_FLAGS} -Wall -Wextra -Wshadow -pedantic -Wuninitialized") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${${PROJECT_NAME}_C_FLAGS} -Wall -Wextra -Wshadow -pedantic -Wuninitialized")
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0 --coverage")
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O3") set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O3")
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -O3 -g") set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -O3 -g")
string(TOUPPER "${USE_TSAN}" use_tsanitizer_uppercase)
IF(use_tsanitizer_uppercase STREQUAL "TRUE")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O1 -fsanitize=thread")
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O1 -fsanitize=thread")
ELSE()
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 --coverage")
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0 --coverage")
ENDIF()
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