From a320897d369c84ed732863a34dbc5f1a58e1a0dc Mon Sep 17 00:00:00 2001 From: Jordi Cotela Date: Sat, 15 Jul 2017 20:30:21 +0200 Subject: [PATCH 1/6] Defining new build modes. --- CMakeLists.txt | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f7bb5508e831..d2b005b6eff9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,6 +6,26 @@ set (KratosMultiphysics_MAJOR_VERSION 5) set (KratosMultiphysics_MINOR_VERSION 0) set (KratosMultiphysics_PATCH_VERSION 0) +# Define custom compiler build types +SET( BASIC_DEBUG_FLAGS "${CMAKE_CXX_FLAGS_DEBUG}") +SET( CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}" + CACHE STRING "Flags used by the C++ compiler during Release builds." FORCE) +SET( CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -DKRATOS_BUILD_SUFFIX=-RelWithDebInfo" + CACHE STRING "Flags used by the C++ compiler during RelWithDebInfo builds." FORCE) +SET( CMAKE_CXX_FLAGS_FASTDEBUG "${BASIC_DEBUG_FLAGS} -DNDEBUG -DKRATOS_DEBUG -DKRATOS_BUILD_SUFFIX=-FastDebug" + CACHE STRING "Flags used by the C++ compiler during FastDebug builds." FORCE) +SET( CMAKE_CXX_FLAGS_DEBUG "${BASIC_DEBUG_FLAGS} -DNDEBUG -DKRATOS_DEBUG -DKRATOS_BUILD_SUFFIX=-Debug" + CACHE STRING "Flags used by the C++ compiler during Debug builds." FORCE) +SET( CMAKE_CXX_FLAGS_FULLDEBUG "${BASIC_DEBUG_FLAGS} -DKRATOS_DEBUG -DKRATOS_BUILD_SUFFIX=-FullDebug" + CACHE STRING "Flags used by the C++ compiler during FullDebug builds." FORCE) + +message("BASIC_DEBUG_FLAGS ${BASIC_DEBUG_FLAGS}") +message("RELEASE: ${CMAKE_CXX_FLAGS_RELEASE}") +message("RELWITHDEBINFO: ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}") +message("FASTDEBUG: ${CMAKE_CXX_FLAGS_FASTDEBUG}") +message("DEBUG: ${CMAKE_CXX_FLAGS_DEBUG}") +message("FULLDEBUG: ${CMAKE_CXX_FLAGS_FULLDEBUG}") + # Get subversion data. This is done automagically by the cmakes include (GenerateExportHeader) @@ -22,7 +42,6 @@ else(GIT_FOUND) set (KratosMultiphysics_SHA1_NUMBER 0) endif(GIT_FOUND) - configure_file( "${PROJECT_SOURCE_DIR}/kratos_version.h.in" "${PROJECT_SOURCE_DIR}/kratos/includes/kratos_version.h" @@ -33,11 +52,6 @@ if(${CMAKE_COMPILER_IS_GNUCXX}) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -funroll-loops -ffast-math -Wall -std=c++11") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -funroll-loops -ffast-math -Wall") set(CMAKE_SHARED_LINKER_FLAGS " -Wl,--no-undefined") - -# if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 5.0) -# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wsuggest-override") -# endif(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 5.0) - message("additional default options were set for gcc") message("CMAKE_CXX_FLAGS = ${CMAKE_CXX_FLAGS}") message("CMAKE_C_FLAGS = ${CMAKE_C_FLAGS}") From 3f6f645bbb75d527cffbddbb008a31cee38919f3 Mon Sep 17 00:00:00 2001 From: jcotela Date: Thu, 3 Aug 2017 17:35:55 +0200 Subject: [PATCH 2/6] Adding build mode strings. --- CMakeLists.txt | 18 +++++++++++++----- kratos_version.h.in | 7 +++++-- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 695796505338..623a0e5a4c68 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,13 +10,13 @@ set (KratosMultiphysics_PATCH_VERSION 0) SET( BASIC_DEBUG_FLAGS "${CMAKE_CXX_FLAGS_DEBUG}") SET( CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}" CACHE STRING "Flags used by the C++ compiler during Release builds." FORCE) -SET( CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -DKRATOS_BUILD_SUFFIX=-RelWithDebInfo" +SET( CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}" CACHE STRING "Flags used by the C++ compiler during RelWithDebInfo builds." FORCE) -SET( CMAKE_CXX_FLAGS_FASTDEBUG "${BASIC_DEBUG_FLAGS} -DNDEBUG -DKRATOS_DEBUG -DKRATOS_BUILD_SUFFIX=-FastDebug" +SET( CMAKE_CXX_FLAGS_FASTDEBUG "${BASIC_DEBUG_FLAGS} -DNDEBUG -DKRATOS_DEBUG" CACHE STRING "Flags used by the C++ compiler during FastDebug builds." FORCE) -SET( CMAKE_CXX_FLAGS_DEBUG "${BASIC_DEBUG_FLAGS} -DNDEBUG -DKRATOS_DEBUG -DKRATOS_BUILD_SUFFIX=-Debug" +SET( CMAKE_CXX_FLAGS_DEBUG "${BASIC_DEBUG_FLAGS} -DNDEBUG -DKRATOS_DEBUG" CACHE STRING "Flags used by the C++ compiler during Debug builds." FORCE) -SET( CMAKE_CXX_FLAGS_FULLDEBUG "${BASIC_DEBUG_FLAGS} -DKRATOS_DEBUG -DKRATOS_BUILD_SUFFIX=-FullDebug" +SET( CMAKE_CXX_FLAGS_FULLDEBUG "${BASIC_DEBUG_FLAGS} -DKRATOS_DEBUG" CACHE STRING "Flags used by the C++ compiler during FullDebug builds." FORCE) message("BASIC_DEBUG_FLAGS ${BASIC_DEBUG_FLAGS}") @@ -25,7 +25,7 @@ message("RELWITHDEBINFO: ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}") message("FASTDEBUG: ${CMAKE_CXX_FLAGS_FASTDEBUG}") message("DEBUG: ${CMAKE_CXX_FLAGS_DEBUG}") message("FULLDEBUG: ${CMAKE_CXX_FLAGS_FULLDEBUG}") - +message("CMAKE_CONFIGURATION_TYPES: ${CMAKE_CONFIGURATION_TYPES}") # Get subversion data. This is done automagically by the cmakes include (GenerateExportHeader) @@ -42,6 +42,14 @@ else(GIT_FOUND) set (KratosMultiphysics_SHA1_NUMBER 0) endif(GIT_FOUND) +set (KratosMultiphysics_BUILD_TYPE ${CMAKE_BUILD_TYPE}) +string( TOUPPER ${CMAKE_BUILD_TYPE} UPPERCASE_BUILD_TYPE) +if( UPPERCASE_BUILD_TYPE MATCHES RELEASE ) + set (KratosMultiphysics_BUILD_SUFFIX "") +else( UPPERCASE_BUILD_TYPE MATCHES RELEASE ) + set (KratosMultiphysics_BUILD_SUFFIX "-${CMAKE_BUILD_TYPE}" ) +endif( UPPERCASE_BUILD_TYPE MATCHES RELEASE ) + configure_file( "${PROJECT_SOURCE_DIR}/kratos_version.h.in" "${PROJECT_SOURCE_DIR}/kratos/includes/kratos_version.h" diff --git a/kratos_version.h.in b/kratos_version.h.in index 08902cad6d2b..05c9b3de1d94 100644 --- a/kratos_version.h.in +++ b/kratos_version.h.in @@ -3,7 +3,10 @@ #define KRATOS_MINOR_VERSION @KratosMultiphysics_MINOR_VERSION@ #define KRATOS_PATCH_VERSION @KratosMultiphysics_PATCH_VERSION@ -//svn version at configure time +//git revision at configure time #define KRATOS_SHA1_NUMBER @KratosMultiphysics_SHA1_NUMBER@ -#define KRATOS_VERSION "@KratosMultiphysics_MAJOR_VERSION@.@KratosMultiphysics_MINOR_VERSION@.@KratosMultiphysics_PATCH_VERSION@-@KratosMultiphysics_SHA1_NUMBER@" +//cmake build type +#define KRATOS_BUILD_TYPE @KratosMultiphysics_BUILD_TYPE@ + +#define KRATOS_VERSION "@KratosMultiphysics_MAJOR_VERSION@.@KratosMultiphysics_MINOR_VERSION@.@KratosMultiphysics_PATCH_VERSION@-@KratosMultiphysics_SHA1_NUMBER@@KratosMultiphysics_BUILD_SUFFIX@" From e1f18a98bf08efd62df0c0b853be18618767b756 Mon Sep 17 00:00:00 2001 From: jcotela Date: Mon, 7 Aug 2017 16:33:48 +0200 Subject: [PATCH 3/6] Fixing CMake bug (was failing if CMake build type is undefined. --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 623a0e5a4c68..77dcb1d5e8c9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -43,7 +43,7 @@ else(GIT_FOUND) endif(GIT_FOUND) set (KratosMultiphysics_BUILD_TYPE ${CMAKE_BUILD_TYPE}) -string( TOUPPER ${CMAKE_BUILD_TYPE} UPPERCASE_BUILD_TYPE) +string( TOUPPER "${CMAKE_BUILD_TYPE}" UPPERCASE_BUILD_TYPE ) if( UPPERCASE_BUILD_TYPE MATCHES RELEASE ) set (KratosMultiphysics_BUILD_SUFFIX "") else( UPPERCASE_BUILD_TYPE MATCHES RELEASE ) From 3d46c3b94e53c0099c91e4bec139de86f1f46742 Mon Sep 17 00:00:00 2001 From: jcotela Date: Tue, 8 Aug 2017 12:17:27 +0200 Subject: [PATCH 4/6] Cleaning up, removing KRATOS_DEBUG and DO_NOT_DEFINE_NDEBUG cmake variables. --- CMakeLists.txt | 45 +++++++++++++++------------------------------ 1 file changed, 15 insertions(+), 30 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 77dcb1d5e8c9..66032c36a4ce 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,25 +7,22 @@ set (KratosMultiphysics_MINOR_VERSION 1) set (KratosMultiphysics_PATCH_VERSION 0) # Define custom compiler build types +SET( CMAKE_CONFIGURATION_TYPES "Release;RelWithDebInfo;FastDebug;Debug;FullDebug" ) SET( BASIC_DEBUG_FLAGS "${CMAKE_CXX_FLAGS_DEBUG}") -SET( CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}" - CACHE STRING "Flags used by the C++ compiler during Release builds." FORCE) -SET( CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}" - CACHE STRING "Flags used by the C++ compiler during RelWithDebInfo builds." FORCE) -SET( CMAKE_CXX_FLAGS_FASTDEBUG "${BASIC_DEBUG_FLAGS} -DNDEBUG -DKRATOS_DEBUG" - CACHE STRING "Flags used by the C++ compiler during FastDebug builds." FORCE) -SET( CMAKE_CXX_FLAGS_DEBUG "${BASIC_DEBUG_FLAGS} -DNDEBUG -DKRATOS_DEBUG" - CACHE STRING "Flags used by the C++ compiler during Debug builds." FORCE) -SET( CMAKE_CXX_FLAGS_FULLDEBUG "${BASIC_DEBUG_FLAGS} -DKRATOS_DEBUG" - CACHE STRING "Flags used by the C++ compiler during FullDebug builds." FORCE) +#SET( CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}" ) +#SET( CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}" ) +SET( CMAKE_CXX_FLAGS_FASTDEBUG "${BASIC_DEBUG_FLAGS} -DNDEBUG" ) +SET( CMAKE_CXX_FLAGS_DEBUG "${BASIC_DEBUG_FLAGS} -DNDEBUG -DKRATOS_DEBUG" ) +SET( CMAKE_CXX_FLAGS_FULLDEBUG "${BASIC_DEBUG_FLAGS} -DKRATOS_DEBUG" ) message("BASIC_DEBUG_FLAGS ${BASIC_DEBUG_FLAGS}") -message("RELEASE: ${CMAKE_CXX_FLAGS_RELEASE}") -message("RELWITHDEBINFO: ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}") -message("FASTDEBUG: ${CMAKE_CXX_FLAGS_FASTDEBUG}") -message("DEBUG: ${CMAKE_CXX_FLAGS_DEBUG}") -message("FULLDEBUG: ${CMAKE_CXX_FLAGS_FULLDEBUG}") +message("Release: ${CMAKE_CXX_FLAGS_RELEASE}") +message("RelWithDebInfo: ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}") +message("FastDebug: ${CMAKE_CXX_FLAGS_FASTDEBUG}") +message("Debug: ${CMAKE_CXX_FLAGS_DEBUG}") +message("FullDebug: ${CMAKE_CXX_FLAGS_FULLDEBUG}") message("CMAKE_CONFIGURATION_TYPES: ${CMAKE_CONFIGURATION_TYPES}") + # Get subversion data. This is done automagically by the cmakes include (GenerateExportHeader) @@ -43,12 +40,11 @@ else(GIT_FOUND) endif(GIT_FOUND) set (KratosMultiphysics_BUILD_TYPE ${CMAKE_BUILD_TYPE}) -string( TOUPPER "${CMAKE_BUILD_TYPE}" UPPERCASE_BUILD_TYPE ) -if( UPPERCASE_BUILD_TYPE MATCHES RELEASE ) +if( ${CMAKE_BUILD_TYPE} MATCHES "Release" ) set (KratosMultiphysics_BUILD_SUFFIX "") -else( UPPERCASE_BUILD_TYPE MATCHES RELEASE ) +else( ${CMAKE_BUILD_TYPE} MATCHES "Release" ) set (KratosMultiphysics_BUILD_SUFFIX "-${CMAKE_BUILD_TYPE}" ) -endif( UPPERCASE_BUILD_TYPE MATCHES RELEASE ) +endif( ${CMAKE_BUILD_TYPE} MATCHES "Release" ) configure_file( "${PROJECT_SOURCE_DIR}/kratos_version.h.in" @@ -306,17 +302,6 @@ include_directories( ${CMAKE_BINARY_DIR}/external_libraries/zlib ) # defines needed add_definitions( -DKRATOS_PYTHON ) -if(${DO_NOT_DEFINE_NDEBUG} MATCHES ON ) - message("*************** ATTENTION AVOIDING DEFINING NDEBUG --- EXTREMELY SLOW!! ***************************") -else(${DO_NOT_DEFINE_NDEBUG} MATCHES ON ) - add_definitions( -DNDEBUG ) -endif(${DO_NOT_DEFINE_NDEBUG} MATCHES ON ) - -if(${KRATOS_DEBUG} MATCHES ON ) - message("*************** DEFINING KRATOS_DEBUG --- VERY SLOW!! ***************************") - add_definitions( -DKRATOS_DEBUG ) -endif(${KRATOS_DEBUG} MATCHES ON ) - if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") add_definitions( -fPIC ) endif(${CMAKE_SYSTEM_NAME} MATCHES "Linux") From e558124f8aaf4acd0102380571627f16d0cb2a8e Mon Sep 17 00:00:00 2001 From: Carlos Date: Tue, 8 Aug 2017 15:31:01 +0200 Subject: [PATCH 5/6] Added additional falgs for the new modes --- CMakeLists.txt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 66032c36a4ce..08d3e661e741 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,6 +15,14 @@ SET( CMAKE_CXX_FLAGS_FASTDEBUG "${BASIC_DEBUG_FLAGS} -DNDEBUG" ) SET( CMAKE_CXX_FLAGS_DEBUG "${BASIC_DEBUG_FLAGS} -DNDEBUG -DKRATOS_DEBUG" ) SET( CMAKE_CXX_FLAGS_FULLDEBUG "${BASIC_DEBUG_FLAGS} -DKRATOS_DEBUG" ) +# Define internal CMake flags needed +SET( CMAKE_C_FLAGS_FASTDEBUG "${CMAKE_C_FLAGS_DEBUG}" ) +SET( CMAKE_C_FLAGS_FULLDEBUG "${CMAKE_C_FLAGS_DEBUG}" ) +SET( CMAKE_SHARED_LINKER_FLAGS_FASTDEBUG "${CMAKE_SHARED_LINKER_FLAGS_DEBUG}" ) +SET( CMAKE_SHARED_LINKER_FLAGS_FULLDEBUG "${CMAKE_SHARED_LINKER_FLAGS_DEBUG}" ) +SET( CMAKE_EXE_LINKER_FLAGS_FASTDEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG}" ) +SET( CMAKE_EXE_LINKER_FLAGS_FULLDEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG}" ) + message("BASIC_DEBUG_FLAGS ${BASIC_DEBUG_FLAGS}") message("Release: ${CMAKE_CXX_FLAGS_RELEASE}") message("RelWithDebInfo: ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}") From e8e898598dcfacb5a62767789e0ef39b73a92231 Mon Sep 17 00:00:00 2001 From: jcotela Date: Mon, 4 Sep 2017 15:09:19 +0200 Subject: [PATCH 6/6] Removing FastDebug mode and test prints. --- CMakeLists.txt | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 08d3e661e741..4ac29e6d4558 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,30 +7,18 @@ set (KratosMultiphysics_MINOR_VERSION 1) set (KratosMultiphysics_PATCH_VERSION 0) # Define custom compiler build types -SET( CMAKE_CONFIGURATION_TYPES "Release;RelWithDebInfo;FastDebug;Debug;FullDebug" ) +SET( CMAKE_CONFIGURATION_TYPES "Release;RelWithDebInfo;Debug;FullDebug" ) SET( BASIC_DEBUG_FLAGS "${CMAKE_CXX_FLAGS_DEBUG}") #SET( CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}" ) #SET( CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}" ) -SET( CMAKE_CXX_FLAGS_FASTDEBUG "${BASIC_DEBUG_FLAGS} -DNDEBUG" ) SET( CMAKE_CXX_FLAGS_DEBUG "${BASIC_DEBUG_FLAGS} -DNDEBUG -DKRATOS_DEBUG" ) SET( CMAKE_CXX_FLAGS_FULLDEBUG "${BASIC_DEBUG_FLAGS} -DKRATOS_DEBUG" ) # Define internal CMake flags needed -SET( CMAKE_C_FLAGS_FASTDEBUG "${CMAKE_C_FLAGS_DEBUG}" ) SET( CMAKE_C_FLAGS_FULLDEBUG "${CMAKE_C_FLAGS_DEBUG}" ) -SET( CMAKE_SHARED_LINKER_FLAGS_FASTDEBUG "${CMAKE_SHARED_LINKER_FLAGS_DEBUG}" ) SET( CMAKE_SHARED_LINKER_FLAGS_FULLDEBUG "${CMAKE_SHARED_LINKER_FLAGS_DEBUG}" ) -SET( CMAKE_EXE_LINKER_FLAGS_FASTDEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG}" ) SET( CMAKE_EXE_LINKER_FLAGS_FULLDEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG}" ) -message("BASIC_DEBUG_FLAGS ${BASIC_DEBUG_FLAGS}") -message("Release: ${CMAKE_CXX_FLAGS_RELEASE}") -message("RelWithDebInfo: ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}") -message("FastDebug: ${CMAKE_CXX_FLAGS_FASTDEBUG}") -message("Debug: ${CMAKE_CXX_FLAGS_DEBUG}") -message("FullDebug: ${CMAKE_CXX_FLAGS_FULLDEBUG}") -message("CMAKE_CONFIGURATION_TYPES: ${CMAKE_CONFIGURATION_TYPES}") - # Get subversion data. This is done automagically by the cmakes include (GenerateExportHeader)