1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
cmake_minimum_required(VERSION 2.6)
project(CatalystFortranPoissonSolver CXX Fortran)
set(SOURCES
FEDriver.F90
Box.F90
SparseMatrix.F90
ConjugateGradient.F90
PoissonDiscretization.F90
)
set(USE_CATALYST ON CACHE BOOL "Link the simulator with Catalyst")
if(USE_CATALYST)
find_package(ParaView 4.1 REQUIRED COMPONENTS vtkPVPythonCatalyst)
include("${PARAVIEW_USE_FILE}")
# we don't create a separate library for the adaptor here
# since FEFortranAdaptor.F90 depends on Box.F90
list(APPEND SOURCES FEFortranAdaptor.F90 FECxxAdaptor.cxx)
add_definitions("-DUSE_CATALYST")
if(NOT PARAVIEW_USE_MPI)
message(SEND_ERROR "ParaView must be built with MPI enabled")
endif()
else()
find_package(MPI REQUIRED)
include_directories(${MPI_Fortran_INCLUDE_PATH})
endif()
add_executable(FortranPoissonSolver ${SOURCES})
target_link_libraries(FortranPoissonSolver ${MPI_Fortran_LIBRARIES})
if(USE_CATALYST)
target_link_libraries(FortranPoissonSolver vtkPVPythonCatalyst vtkParallelMPI)
endif()
set_target_properties(FortranPoissonSolver PROPERTIES
LINKER_LANGUAGE Fortran)
option(BUILD_TESTING "Build Testing" OFF)
# Setup testing.
if (BUILD_TESTING)
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/SampleScripts/coproc.py DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
include(CTest)
add_test(NAME FortranPoissonSolverTest COMMAND FortranPoissonSolver coproc.py)
set_tests_properties(FortranPoissonSolverTest PROPERTIES LABELS "PARAVIEW;CATALYST")
endif()
|