#This is a CMake makefile. cmake_minimum_required(VERSION 2.8.11) add_executable(Test1 ex3.cpp) set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) # set root of location to find PETSc configuration set(PETSC $ENV{PETSC_DIR}/$ENV{PETSC_ARCH}) set(ENV{PKG_CONFIG_PATH} ${PETSC}/lib/pkgconfig) # Determine PETSc compilers execute_process ( COMMAND pkg-config petsc --variable=ccompiler COMMAND tr -d '\n' OUTPUT_VARIABLE C_COMPILER) SET(CMAKE_C_COMPILER ${C_COMPILER}) execute_process ( COMMAND pkg-config petsc --variable=cxxcompiler COMMAND tr -d '\n' OUTPUT_VARIABLE CXX_COMPILER) if (CXX_COMPILER) SET(CMAKE_CXX_COMPILER ${CXX_COMPILER}) endif (CXX_COMPILER) execute_process ( COMMAND pkg-config petsc --variable=fcompiler COMMAND tr -d '\n' OUTPUT_VARIABLE FORTRAN_COMPILER) if (FORTRAN_COMPILER) SET(CMAKE_Fortran_COMPILER ${FORTRAN_COMPILER}) enable_language(Fortran) endif (FORTRAN_COMPILER) # this must appear AFTER the compilers are set project(Test1) find_package(PkgConfig REQUIRED) pkg_search_module(PETSC REQUIRED PETSc) include_directories(${PETSC_INCLUDE_DIRS}) target_link_libraries(Test1 ${PETSC_LDFLAGS} pthread)