Select Git revision
CMakeLists.txt
-
Stéphane Del Pino authored
- 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)
Stéphane Del Pino authored- 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 2.29 KiB
cmake_minimum_required (VERSION 3.4)
# CMake utils
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
# Forbids in-source builds
include(CheckNotInSources)
#------------------------------------------------------
#----------------- Main configuration -----------------
#------------------------------------------------------
project (Pastis
VERSION 0.0.4)
set(PASTIS_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
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})
# 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)
# 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 ${PASTIS_CXX_FLAGS}")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -D_GLIBCXX_DEBUG -D_LIBCPP_DEBUG=1 ${PASTIS_CXX_FLAGS}")
#------------------------------------------------------
# Rang (colors? Useless thus necessary!)
include_directories(${PASTIS_SOURCE_DIR}/packages/rang/include)
# CLI11
include_directories(${PASTIS_SOURCE_DIR}/packages/CLI11/include)
# Pastis src
add_subdirectory(src)
include_directories(src)
include_directories(src/algebra)
include_directories(src/mesh)
include_directories(src/utils)
include_directories(src/scheme)
include_directories(src/experimental)
# -----------------------------------------------------
link_libraries("-rdynamic")
# ------------------- Source files --------------------
# Pastis binary
add_executable(
pastis
src/main.cpp)
# Libraries
target_link_libraries(
pastis
kokkos
PastisUtils
PastisMesh
PastisExperimental)