Select Git revision
CMakeLists.txt
-
Stéphane Del Pino authoredStéphane Del Pino authored
CMakeLists.txt 1.87 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.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(${PASTIS_SOURCE_DIR}/packages/kokkos)
include_directories(${Kokkos_INCLUDE_DIRS_RET})
# Compiler flags
include(GetKokkosCompilerFlags)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
# Add debug mode for Standard C++ library
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_GLIBCXX_DEBUG -D_LIBCPP_DEBUG=1")
#------------------------------------------------------
# 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)
link_libraries("-rdynamic")
# ------------------- Source files --------------------
# Pastis binary
add_executable(
pastis
main.cpp)