Skip to content
Snippets Groups Projects
Commit 589efbc3 authored by Markus Blatt's avatar Markus Blatt
Browse files

Rudimentary configure with cmake works. (No tests added yet, make is untested.)

[[Imported from SVN: r1556]]
parent 8223cdf2
No related branches found
No related tags found
No related merge requests found
cmake_minimum_required(VERSION 2.8)
project(dune-istl CXX)
# make sure our own modules are found
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules")
#include the dune macros
include(DuneMacros)
# start a dune project with information from dune.module
dune_project()
add_subdirectory("cmake/modules")
add_subdirectory("m4")
add_subdirectory("dune")
add_subdirectory("doc")
# finalize the dune project, e.g. generating config.h etc.
finalize_dune_project(GENERATE_CONFIG_H_CMAKE)
#compute installation prefix relative to this file
get_filename_component(_dir "${CMAKE_CURRENT_LIST_FILE}" PATH)
get_filename_component(_prefix "${_dir}/../.." ABSOLUTE)
#import the target
#include("${_prefix}/lib/cmake/@DUNE_MOD_NAME@-targets.cmake")
#report other information
set(@DUNE_MOD_NAME@_INCLUDE_DIRS "${_prefix}/include")
set(@DUNE_MOD_NAME@_CXX_FLAGS "@CMAKE_CXX_FLAGS@")
set(@DUNE_MOD_NAME@_CXX_FLAGS_DEBUG "@CMAKE_CXX_FLAGS_DEBUG@")
set(@DUNE_MOD_NAME@_CXX_FLAGS_MINSIZEREL "@CMAKE_CXX_FLAGS_MINSIZEREL@")
set(@DUNE_MOD_NAME@_CXX_FLAGS_RELEASE "@CMAKE_CXX_FLAGS_RELEASE@")
set(@DUNE_MOD_NAME@_CXX_FLAGS_RELWITHDEBINFO "@CMAKE_CXX_FLAGS_RELWITHDEBINFO@")
set(PACKAGE_VERSION "@DUNE_MOD_VERSION@")
if(NOT "${PACKAGE_FIND_VERSION}" VERSION_GREATER "@DUNE_MOD_VERSION@")
set (PACKAGE_VERSION_COMPATIBLE 1) # compatible with older
if ("${PACKAGE_FIND_VERSION}" VERSION_EQUAL "@DUNE_MOD_VERSION@")
set(PACKAGE_VERSION_EXACT 1) #exact match for this version
endif()
endif()
add_subdirectory("doxygen")
add_subdirectory("comm")
add_executable(poosc08 "poosc08.cc")
add_executable(poosc08_test "poosc08_test.cc")
add_executable(indexset "indexset.cc")
add_dune_mpi_flags(poosc08;poosc08test;indexset)
include(UseLATEX)
ADD_LATEX_DOCUMENT(communication.tex FATHER_TARGET doc
BIBFILES communcation.bib DEFAULT_PDF INPUTS poosc08_test.cc
IMAGE_DIRS figures)
create_doc_install(${CMAKE_CURRENT_BINARY_DIR}/communication.pdf share/doc/dune-istl/comm)
# shortcut for creating the Doxyfile.in and Doxyfile
add_doxygen_target()
# install doxygen documentation
install(FILES Doxystyle DESTINATION share/test1/doc/doxygen)
add_subdirectory(istl)
add_subdirectory("paamg")
add_subdirectory("tutorial")
add_subdirectory("test")
#install headers
install(FILES
basearray.hh
bcrsmatrix.hh
bdmatrix.hh
btdmatrix.hh
bvector.hh
communicator.hh
diagonalmatrix.hh
gsetc.hh
ilu.hh
ilusubdomainsolver.hh
indexset.hh
indicessyncer.hh
interface.hh
io.hh
istlexception.hh
localindex.hh
matrix.hh
matrixindexset.hh
matrixmarket.hh
matrixmatrix.hh
matrixredistribute.hh
matrixutils.hh
mpitraits.hh
multitypeblockmatrix.hh
multitypeblockvector.hh
novlpschwarz.hh
operators.hh
overlappingschwarz.hh
owneroverlapcopy.hh
pardiso.hh
plocalindex.hh
preconditioners.hh
remoteindices.hh
repartition.hh
scalarproducts.hh
scaledidmatrix.hh
schwarz.hh
selection.hh
solvercategory.hh
solvers.hh
solvertype.hh
superlu.hh
supermatrix.hh
vbvector.hh
DESTINATION include/dune/istl)
add_subdirectory("test")
#install headers
install(FILES aggregates.hh dependency.hh galerkin.hh graph.hh
indicescoarsener.hh properties.hh globalaggregates.hh
hierarchy.hh construction.hh
transfer.hh smoother.hh amg.hh kamg.hh combinedfunctor.hh
graphcreator.hh parameters.hh renumberer.hh pinfo.hh
DESTINATION include/dune/istl/paamg)
set(MPITESTS galerkintest hierarchytest pamgtest
pamg_comm_repart_test transfertest)
set(NORMALTEST amgtest graphtest kamgtest)
# We do not want want to build the tests during make all,
# but just build them on demand
add_dependencies(build_tests ${MPITESTS} ${NORMALTEST})
add_executable(amgtest "amgtest.cc")
add_executable(galerkintest "galerkintest.cc")
add_executable(graphtest "graphtest.cc")
add_executable(hierarchytest "hierarchytest.cc")
add_executable(kamgtest "kamgtest.cc")
add_executable(pamg_comm_repart_test "parallelamgtest.cc")
set_target_properties(pamg_comm_repart_test PROPERTIES COMPILE_FLAGS "-DAMG_REPART_ON_COMM_GRAPH")
add_executable(pamgtest "parallelamgtest.cc")
add_executable(transfertest "transfertest.cc")
foreach(_exe ${ALLTESTS})
target_link_libraries(${_exe} "dunecommon")
endforeach(_exe ${ALLTESTS})
include(DuneMPI)
add_dune_mpi_flags(${MPITESTS})
set(MPITESTS vectorcommtest matrixmarkettestmatrixredisttest )
set(NORMALTEST basearraytest matrixutilstest matrixtest
bvectortest vbvectortest bcrsbuildtest matrixiteratortest mv
iotest scaledidmatrixtest seqmatrixmarkettest)
if(HAVE_PARDISO)
set(PARDISOTEST test_pardiso)
endif(HAVE_PARDISO)
if(HAVE_SUPERLU)
set(SUPERLUTESTS superlutest superluztest superluctest superlustest
overlappingschwarztest)
endif(HAVE_SUPERLU)
set(NORMALTEST amgtest graphtest kamgtest)
# We do not want want to build the tests during make all,
# but just build them on demand
add_dependencies(build_tests ${MPITESTS} ${NORMALTEST} ${PARDISOTEST} ${SUPERLUTESTS})
# Provide source files
if(HAVE_PARDISO)
add_executable(pardiso_test test_pardiso.cc)
# TODO add pardiso flags
endif(HAVE_PARDISO)
if(HAVE_SUPERLU)
add_executable(superlutest "superlutest.cc")
add_executable(superlustest "superlutest.cc")
set_target_properties(superlustest PROPERTIES COMPILE_FLAGS "-DSUPERLU_NTYPE=0")
add_executable(superluctest "superlutest.cc")
set_target_properties(superlustest PROPERTIES COMPILE_FLAGS "-DSUPERLU_NTYPE=2")
add_executable(superluztest "superlutest.cc")
set_target_properties(superlustest PROPERTIES COMPILE_FLAGS "-DSUPERLU_NTYPE=3")
add_executable(overlappingschwarztest "overlappingschwarztest.cc")
# TODO add superlu flags
endif(HAVE_SUPERLU)
include(DuneMPI)
if(HAVE_MPI)
add_executable(matrixredisttest "matrixredisttest.cc")
add_executable(vectorcommtest "vectorcommtest.cc")
add_executable(matrixmarkettest "matrixmarkettest.cc")
add_dune_mpi_flags(${MPITESTS})
endif(HAVE_MPI)
foreach(_exe ${ALLTESTS})
target_link_libraries(${_exe} "dunecommon")
endforeach(_exe ${ALLTESTS})
add_executable(example "example.cc")
install(PROGRAMS
dune-istl.m4 pardiso.m4 superlu-dist.m4 superlu.m4
DESTINATION share/aclocal)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment