cmake_minimum_required(VERSION 3.1) project(dune-amdis CXX) 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() #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() dune_enable_all_packages(MODULE_LIBRARIES amdis) include(AmdisMacros) add_subdirectory("src") add_subdirectory("dune") add_subdirectory("doc") add_subdirectory("cmake/modules") # 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) # finalize the dune project, e.g. generating config.h etc. finalize_dune_project(GENERATE_CONFIG_H_CMAKE)