CMakeLists.txt 1.69 KB
Newer Older
1
cmake_minimum_required(VERSION 3.1)
2 3
project(dune-amdis CXX)

4
#set(CXX_MAX_STANDARD 14 CACHE BOOL "" FORCE)
5

6 7 8 9 10 11
if(NOT (dune-common_DIR OR dune-common_ROOT OR
      "${CMAKE_PREFIX_PATH}" MATCHES ".*dune-common.*"))
    string(REPLACE  ${CMAKE_PROJECT_NAME} dune-common dune-common_DIR
      ${PROJECT_BINARY_DIR})
endif()

12

13 14 15 16 17 18 19 20 21 22
#find dune-common and set the module path
find_package(dune-common REQUIRED)
list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/modules"
  ${dune-common_MODULE_PATH})

#include the dune macros
include(DuneMacros)

# start a dune project with information from dune.module
dune_project()
23 24 25
dune_enable_all_packages(MODULE_LIBRARIES amdis)

include(AmdisMacros)
26 27 28 29 30
add_subdirectory("src")
add_subdirectory("dune")
add_subdirectory("doc")
add_subdirectory("cmake/modules")

31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51

# some additional packages and flags
add_dune_alberta_flags("amdis" OBJECT USE_GENERIC)
target_compile_definitions("amdis" PUBLIC AMDIS_BACKEND_MTL=1)
target_compile_options("amdis" PUBLIC -ftemplate-backtrace-limit=0 -Wall -pedantic -Wno-unused-parameter)

find_package(MTL REQUIRED
             PATHS /usr/local/lib/mtl4 /opt/sources/mtl4 /opt/development/mtl4)
if (MTL_FOUND)
  target_include_directories("amdis" PUBLIC ${MTL_INCLUDE_DIRS})

  set (CXX_ELEVEN_FEATURE_LIST "MOVE" "AUTO" "RANGEDFOR" "INITLIST" "STATICASSERT" "DEFAULTIMPL")
  foreach (feature ${CXX_ELEVEN_FEATURE_LIST})
      target_compile_definitions("amdis" PUBLIC MTL_WITH_${feature})
  endforeach ()

  if (HAVE_UMFPACK OR ENABLE_SUITESPARSE OR SuiteSparse_FOUND)
      target_compile_definitions("amdis" PUBLIC MTL_HAS_UMFPACK)
  endif ()
endif (MTL_FOUND)

52 53
# finalize the dune project, e.g. generating config.h etc.
finalize_dune_project(GENERATE_CONFIG_H_CMAKE)