Skip to content
Snippets Groups Projects
Select Git revision
  • 9f0c321e1566b17995515a74d6bf13162048a523
  • develop default protected
  • feature/kinetic-schemes
  • feature/reconstruction
  • feature/local-dt-fsi
  • feature/composite-scheme-sources
  • feature/composite-scheme-other-fluxes
  • feature/serraille
  • feature/variational-hydro
  • feature/composite-scheme
  • hyperplastic
  • feature/polynomials
  • feature/gks
  • feature/implicit-solver-o2
  • feature/coupling_module
  • feature/implicit-solver
  • feature/merge-local-dt-fsi
  • master protected
  • feature/escobar-smoother
  • feature/hypoelasticity-clean
  • feature/hypoelasticity
  • v0.5.0 protected
  • v0.4.1 protected
  • v0.4.0 protected
  • v0.3.0 protected
  • v0.2.0 protected
  • v0.1.0 protected
  • Kidder
  • v0.0.4 protected
  • v0.0.3 protected
  • v0.0.2 protected
  • v0 protected
  • v0.0.1 protected
33 results

CMakeLists.txt

Blame
    • Stéphane Del Pino's avatar
      9f0c321e
      Few CMake configuration improvements · 9f0c321e
      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)
      9f0c321e
      History
      Few CMake configuration improvements
      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)