From 9f0c321e1566b17995515a74d6bf13162048a523 Mon Sep 17 00:00:00 2001 From: Stephane Del Pino <stephane.delpino44@gmail.com> Date: Fri, 27 Apr 2018 00:38:53 +0200 Subject: [PATCH] Few CMake configuration improvements - C++-17 is now default - Default build type is now 'RelWithDebInfo' - for non Release build types - Kokkos is built in debug mode (=> checks for bounds) - standard C++ library is built in debug mode (=> checks for bounds) --- CMakeLists.txt | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8bd01b180..82f8bd126 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,15 +20,37 @@ set(PASTIS_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}") # Kokkos set(KOKKOS_ENABLE_OPENMP ON CACHE BOOL "") + +if (CMAKE_BUILD_TYPE MATCHES "Release") + set (KOKKOS_ENABLE_DEBUG OFF) +else() + set (KOKKOS_ENABLE_DEBUG ON) +endif() + +set(CMAKE_CXX_STANDARD "17") + add_subdirectory(${PASTIS_SOURCE_DIR}/packages/kokkos) include_directories(${Kokkos_INCLUDE_DIRS_RET}) -# Compiler flags +# Default build type is RelWIthDebInfo +if(NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING + "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel." + FORCE) +endif(NOT CMAKE_BUILD_TYPE) + +# Pastis default compiler flags +set(PASTIS_CXX_FLAGS "-Wall") + +# Kokkso compiler flags include(GetKokkosCompilerFlags) -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") + +# Compiler flags +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${PASTIS_CXX_FLAGS}") # Add debug mode for Standard C++ library -set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_GLIBCXX_DEBUG -D_LIBCPP_DEBUG=1") +set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_GLIBCXX_DEBUG -D_LIBCPP_DEBUG=1 ${PASTIS_CXX_FLAGS}") +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -D_GLIBCXX_DEBUG -D_LIBCPP_DEBUG=1 ${PASTIS_CXX_FLAGS}") #------------------------------------------------------ -- GitLab