|
|
|
cmake_minimum_required(VERSION 3.5.0)
|
|
|
|
|
|
|
|
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
|
|
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|
|
|
|
|
|
|
# Set root of location to find PETSc's pkg-config
|
|
|
|
set(PETSC $ENV{PETSC_DIR}/$ENV{PETSC_ARCH})
|
|
|
|
set(ENV{PKG_CONFIG_PATH} ${PETSC}/lib/pkgconfig)
|
|
|
|
|
|
|
|
# Remove the lines below if you do not wish to have PETSc determine the compilers
|
|
|
|
SET(CMAKE_C_COMPILER gcc)
|
|
|
|
SET(CMAKE_CXX_COMPILER g++)
|
|
|
|
SET(CMAKE_Fortran_COMPILER gfortran)
|
|
|
|
enable_language(Fortran)
|
|
|
|
|
|
|
|
# Tells CMake to build the application ex1 from the source file ex1.c
|
|
|
|
# This must appear AFTER the compilers are set
|
|
|
|
project(main)
|
|
|
|
add_executable(main main.c)
|
|
|
|
|
|
|
|
find_package(MPI REQUIRED)
|
|
|
|
find_package(PkgConfig REQUIRED)
|
|
|
|
|
|
|
|
pkg_search_module(PETSC REQUIRED IMPORTED_TARGET PETSc)
|
|
|
|
target_link_libraries(main MPI::MPI_C MPI::MPI_CXX MPI::MPI_Fortran PkgConfig::PETSC)
|