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.2) set(PASTIS_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}") set(PASTIS_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}") #------------------------------------------------------ # Kokkos set(KOKKOS_ENABLE_OPENMP ON CACHE BOOL "") add_subdirectory(${CMAKE_SOURCE_DIR}/packages/kokkos) include_directories(${Kokkos_INCLUDE_DIRS_RET}) # Compiler flags include(GetKokkosCompilerFlags) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") #------------------------------------------------------ # Rang (colors? Useless thus necessary!) include_directories(${PASTIS_SOURCE_DIR}/packages/rang/include) # CLI11 include_directories(${PASTIS_SOURCE_DIR}/packages/CLI11/include) # Pastis utils add_subdirectory(utils) include_directories(utils) # Pastis algebra #add_subdirectory(algebra) include_directories(algebra) # Pastis experimental add_subdirectory(experimental) include_directories(experimental) # ---------------- Checks for includes ---------------- # Checks for FPE include(CheckIncludeFile) check_include_file(fenv.h PASTIS_HAS_FENV_H) # Generates pastis_config.hpp configure_file("${PASTIS_SOURCE_DIR}/pastis_config.hpp.in" "${CMAKE_CURRENT_BINARY_DIR}/pastis_config.hpp" @ONLY) # ------------------- Source files -------------------- # Pastis binary add_executable( pastis main.cpp) # Libraries target_link_libraries( pastis kokkos PastisUtils PastisExperimental)