From 4eb8608d57d34d2c8cc3d0c5be802d6824b90578 Mon Sep 17 00:00:00 2001 From: Oliver Sander <oliver.sander@tu-dresden.de> Date: Fri, 20 Dec 2019 15:45:59 +0100 Subject: [PATCH] Update main CMakeLists.txt zu dune 2.7 style In particular: * Introduce enable_all_packages() * Introduce (empty) subdirectory 'cmake/modules' --- CMakeLists.txt | 25 ++++++++++++++++++------ cmake/modules/CMakeLists.txt | 3 +++ cmake/modules/DuneElasticityMacros.cmake | 1 + 3 files changed, 23 insertions(+), 6 deletions(-) create mode 100644 cmake/modules/CMakeLists.txt create mode 100644 cmake/modules/DuneElasticityMacros.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 8b70fc5..1812950 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 0000000..5c9f0db --- /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 0000000..613dfb6 --- /dev/null +++ b/cmake/modules/DuneElasticityMacros.cmake @@ -0,0 +1 @@ +# File for module specific CMake tests. -- GitLab