diff --git a/CMakeLists.txt b/CMakeLists.txt index 8b70fc58e31c515d04e091b963d2c56fbf758911..181295035f3e751a048fd0c7db5ad6ac9bdbc549 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,19 +1,31 @@ -project("dune-elasticity" CXX) -cmake_minimum_required(VERSION 2.8.6) - -if(NOT (dune-common_DIR OR dune-common_ROOT)) - string(REPLACE ${CMAKE_PROJECT_NAME} dune-common dune-common_DIR ${PROJECT_BINARY_DIR}) +# We require version CMake version 3.1 to prevent issues +# with dune_enable_all_packages and older CMake versions. +cmake_minimum_required(VERSION 3.1) +project(dune-elasticity 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 ${dune-common_MODULE_PATH}) +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() + add_subdirectory("test") add_subdirectory("dune") add_subdirectory("src") +add_subdirectory("cmake/modules") if(HAVE_AMIRAMESH AND HAVE_IPOPT AND HAVE_PSURFACE AND HAVE_UG) set(programs viscoelast nonlinelast) @@ -32,4 +44,5 @@ if(HAVE_AMIRAMESH AND HAVE_IPOPT AND HAVE_PSURFACE AND HAVE_UG AND ADOLC_FOUND) add_dune_adolc_flags(nonlinelast) endif() +# finalize the dune project, e.g. generating config.h etc. finalize_dune_project(GENERATE_CONFIG_H_CMAKE) diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..5c9f0dba89c302a8dc9b16c513ef26a037de6e8b --- /dev/null +++ b/cmake/modules/CMakeLists.txt @@ -0,0 +1,3 @@ +set(modules "DuneElasticityMacros.cmake") + +install(FILES ${modules} DESTINATION ${DUNE_INSTALL_MODULEDIR}) diff --git a/cmake/modules/DuneElasticityMacros.cmake b/cmake/modules/DuneElasticityMacros.cmake new file mode 100644 index 0000000000000000000000000000000000000000..613dfb664b75999b008f0003a4d7c409cbf409ad --- /dev/null +++ b/cmake/modules/DuneElasticityMacros.cmake @@ -0,0 +1 @@ +# File for module specific CMake tests.