2012-11-14 05:45:48 -06:00
|
|
|
# -*- mode: cmake; tab-width: 2; indent-tabs-mode: t; truncate-lines: t; compile-command: "cmake -Wdev" -*-
|
|
|
|
# vim: set filetype=cmake autoindent tabstop=2 shiftwidth=2 noexpandtab softtabstop=2 nowrap:
|
2013-06-25 16:55:58 -05:00
|
|
|
cmake_minimum_required (VERSION 2.8)
|
2013-02-11 03:56:46 -06:00
|
|
|
|
|
|
|
# key information about the library
|
2013-02-22 03:53:10 -06:00
|
|
|
set (project "opm-core")
|
|
|
|
set (${project}_NAME "${project}")
|
|
|
|
set (${project}_DESCRIPTION "Open Porous Media Initiative Core Library")
|
|
|
|
set (${project}_DIR "opm")
|
|
|
|
set (${project}_VERSION_MAJOR 1)
|
|
|
|
set (${project}_VERSION_MINOR 0)
|
2013-02-22 03:08:50 -06:00
|
|
|
set (doxy_dir "Documentation")
|
|
|
|
|
2012-11-14 05:46:35 -06:00
|
|
|
# additional search modules
|
2013-04-04 16:06:08 -05:00
|
|
|
set (${project}_MODULE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules")
|
2013-02-22 03:53:10 -06:00
|
|
|
list (APPEND CMAKE_MODULE_PATH ${${project}_MODULE_DIR})
|
2012-11-14 05:46:35 -06:00
|
|
|
|
2013-06-25 16:55:58 -05:00
|
|
|
macro (prereqs_hook project)
|
|
|
|
endmacro (prereqs_hook project)
|
|
|
|
|
|
|
|
macro (sources_hook project)
|
|
|
|
# Algebraic Multigrid must be compiled together with our program;
|
|
|
|
# if it is not available, then remove our corresponding component
|
|
|
|
find_package (AGMG)
|
|
|
|
if (AGMG_FOUND)
|
|
|
|
list (APPEND ${project}_SOURCES ${AGMG_SOURCES})
|
|
|
|
endif (AGMG_FOUND)
|
|
|
|
|
|
|
|
# these solvers are only compiled in if their dependency is found
|
|
|
|
if (NOT AGMG_FOUND)
|
|
|
|
list (REMOVE_ITEM opm-core_SOURCES
|
|
|
|
${PROJECT_SOURCE_DIR}/${opm-core_DIR}/core/linalg/LinearSolverAGMG.cpp
|
|
|
|
)
|
|
|
|
endif (NOT AGMG_FOUND)
|
|
|
|
if (NOT dune-istl_FOUND)
|
|
|
|
list (REMOVE_ITEM opm-core_SOURCES
|
|
|
|
${PROJECT_SOURCE_DIR}/${opm-core_DIR}/core/linalg/LinearSolverIstl.cpp
|
|
|
|
)
|
|
|
|
endif (NOT dune-istl_FOUND)
|
|
|
|
if (NOT SuiteSparse_FOUND)
|
|
|
|
list (REMOVE_ITEM opm-core_SOURCES
|
|
|
|
${PROJECT_SOURCE_DIR}/${opm-core_DIR}/core/linalg/call_umfpack.c
|
|
|
|
${PROJECT_SOURCE_DIR}/${opm-core_DIR}/core/linalg/LinearSolverUmfpack.cpp
|
|
|
|
)
|
|
|
|
list (REMOVE_ITEM examples_SOURCES
|
|
|
|
${PROJECT_SOURCE_DIR}/tutorials/tutorial2.cpp
|
|
|
|
${PROJECT_SOURCE_DIR}/tutorials/tutorial3.cpp
|
|
|
|
${PROJECT_SOURCE_DIR}/tutorials/tutorial4.cpp
|
|
|
|
)
|
|
|
|
endif (NOT SuiteSparse_FOUND)
|
|
|
|
|
|
|
|
# we are not supposed to include the TinyXML test prog. regardless
|
2013-02-07 16:56:28 -06:00
|
|
|
list (REMOVE_ITEM opm-core_SOURCES
|
2013-06-25 16:55:58 -05:00
|
|
|
${PROJECT_SOURCE_DIR}/${opm-core_DIR}/core/utility/parameters/tinyxml/xmltest.cpp
|
2013-02-11 05:52:52 -06:00
|
|
|
)
|
2013-06-15 15:11:14 -05:00
|
|
|
|
2013-06-25 16:55:58 -05:00
|
|
|
# remove inline TinyXML if a system version was found
|
|
|
|
if (TinyXML_FOUND)
|
|
|
|
file (GLOB_RECURSE _inline_tinyxml "${opm-core_DIR}/core/utility/parameters/tinyxml/*")
|
|
|
|
foreach (_file IN LISTS _inline_tinyxml)
|
|
|
|
list (REMOVE_ITEM opm-core_SOURCES ${_file})
|
|
|
|
endforeach (_file)
|
|
|
|
endif (TinyXML_FOUND)
|
|
|
|
|
|
|
|
# anyhow remove it from the header list (so it doesn't get installed)
|
|
|
|
list (REMOVE_ITEM opm-core_HEADERS "${PROJECT_SOURCE_DIR}/${opm-core_DIR}/core/utility/parameters/tinyxml/tinystr.h")
|
|
|
|
list (REMOVE_ITEM opm-core_HEADERS "${PROJECT_SOURCE_DIR}/${opm-core_DIR}/core/utility/parameters/tinyxml/tinyxml.h")
|
|
|
|
|
|
|
|
# HAVE_ERT is used as an #ifdef, not as an #if in the source code, if it
|
|
|
|
# is not true, then it should be unset altogether
|
|
|
|
if (NOT HAVE_ERT)
|
|
|
|
set (HAVE_ERT)
|
|
|
|
list (REMOVE_ITEM examples_SOURCES
|
|
|
|
${PROJECT_SOURCE_DIR}/examples/import_rewrite.cpp
|
|
|
|
)
|
|
|
|
endif (NOT HAVE_ERT)
|
|
|
|
endmacro (sources_hook project)
|
|
|
|
|
|
|
|
macro (fortran_hook project)
|
|
|
|
# only include Fortran support if AGMG sources are available
|
|
|
|
set (${project}_FORTRAN_IF HAVE_AGMG)
|
|
|
|
endmacro (fortran_hook project)
|
|
|
|
|
|
|
|
macro (tests_hook project)
|
|
|
|
cond_disable_test ("AGMG")
|
|
|
|
cond_disable_test ("ERT")
|
|
|
|
endmacro (tests_hook project)
|
|
|
|
|
|
|
|
# all setup common to the OPM library modules is done here
|
|
|
|
include (OpmLibMain)
|