From c064da91df7e06b9409b5baae7f5b094737b1381 Mon Sep 17 00:00:00 2001 From: Dennis Klein Date: Fri, 27 Jul 2018 16:21:31 +0200 Subject: [PATCH] Add ThreadSan/AddressSan build types and print table --- CMakeLists.txt | 17 +++++++++++++++++ cmake/FairMQLib.cmake | 13 +++++++++---- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d7ebb6df..a9c821b9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -166,6 +166,23 @@ install_cmake_package() # Summary ###################################################################### +if(CMAKE_CONFIGURATION_TYPES) + message(STATUS " ") + message(STATUS " ${Cyan}BUILD TYPE CXX FLAGS${CR}") + string(TOUPPER "${CMAKE_BUILD_TYPE}" selected_type) + foreach(type IN LISTS CMAKE_CONFIGURATION_TYPES) + string(TOUPPER "${type}" type_upper) + if(type_upper STREQUAL selected_type) + pad("${type} >" 18 " " type_padded) + message(STATUS "${BBlue}< ${type_padded}${CR}${BWhite}${CMAKE_CXX_FLAGS_${type_upper}}${CR}") + else() + pad("${type}" 18 " " type_padded) + message(STATUS " ${BWhite}${type_padded}${CR}${CMAKE_CXX_FLAGS_${type_upper}}") + endif() + unset(type_padded) + unset(type_upper) + endforeach() +endif() if(PROJECT_PACKAGE_DEPENDENCIES) message(STATUS " ") message(STATUS " ${Cyan}DEPENDENCY FOUND VERSION PREFIX${CR}") diff --git a/cmake/FairMQLib.cmake b/cmake/FairMQLib.cmake index 00232bd5..dea808de 100644 --- a/cmake/FairMQLib.cmake +++ b/cmake/FairMQLib.cmake @@ -112,7 +112,6 @@ macro(set_fairmq_defaults) set(CMAKE_BUILD_TYPE RelWithDebInfo) endif() - # Handle C++ standard level set(CMAKE_CXX_STANDARD_REQUIRED ON) if(NOT CMAKE_CXX_STANDARD) @@ -158,9 +157,15 @@ macro(set_fairmq_defaults) # Define export set, only one for now set(PROJECT_EXPORT_SET ${PROJECT_NAME}Targets) - # Override CMake defaults - set(CMAKE_CXX_FLAGS_NIGHTLY "-O2 -g -Wshadow -Wall -Wextra") - set(CMAKE_CXX_FLAGS_PROFILE "-g3 -fno-inline -ftest-coverage -fprofile-arcs -Wshadow -Wall -Wextra -Wunused-variable") + # Configure build types + set(CMAKE_CONFIGURATION_TYPES "Debug" "Release" "RelWithDebInfo" "Nightly" "Profile" "AdressSan" "ThreadSan") + set(CMAKE_CXX_FLAGS_DEBUG "-g -Wshadow -Wall -Wextra") + set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG") + set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -Wshadow -Wall -Wextra -DNDEBUG") + set(CMAKE_CXX_FLAGS_NIGHTLY "-O2 -g -Wshadow -Wall -Wextra") + set(CMAKE_CXX_FLAGS_PROFILE "-g3 -Wshadow -Wall -Wextra -fno-inline -ftest-coverage -fprofile-arcs") + set(CMAKE_CXX_FLAGS_ADRESSSAN "-O2 -g -Wshadow -Wall -Wextra -fsanitize=address -fno-omit-frame-pointer") + set(CMAKE_CXX_FLAGS_THREADSAN "-O2 -g -Wshadow -Wall -Wextra -fsanitize=thread") endmacro() function(join VALUES GLUE OUTPUT)