1find_package(PkgConfig) 2 3if(PKG_CONFIG_FOUND) 4 pkg_check_modules(PETSCPKG "PETSc") 5endif(PKG_CONFIG_FOUND) 6 7if(PETSCPKG_FOUND AND (NOT PETSc_DIR)) 8#if PETSc_DIR we're probably doing things the old way 9#so just skip to that 10#otherwise, try and use pkg-config 11if(PETSCPKG_STATIC_LIBRARY_DIRS) 12set(PETSC_LIBRARY_DIRS ${PETSCPKG_STATIC_LIBRARY_DIRS}) 13set(PETSC_INCLUDE_DIRS ${PETSCPKG_STATIC_INCLUDE_DIRS}) 14set(PETSC_LIBRARIES ${PETSCPKG_STATIC_LIBRARIES}) 15else() 16message(WARNING "pkg-config with --static didn't work") 17message(WARNING "consider updating pkg-config") 18message(WARNING "and/or building PETSc as a single library") 19set(PETSC_LIBRARY_DIRS ${PETSCPKG_LIBRARY_DIRS}) 20set(PETSC_INCLUDE_DIRS ${PETSCPKG_INCLUDE_DIRS}) 21set(PETSC_LIBRARIES ${PETSCPKG_LIBRARIES}) 22endif() 23set(PETSC_FOUND TRUE) 24 25else() 26find_package(PETSc REQUIRED) 27if(PETSc_FOUND) 28 set(PETSC_FOUND TRUE) 29endif(PETSc_FOUND) 30 31find_path(PETSC_INC petscsys.h HINTS /usr/include ${PETSC_PACKAGE_INCLUDES}) 32find_path(PETSC_LIB libpetsc.a HINTS /usr/lib ${PETSC_PACKAGE_INCLUDES}../lib) 33set(PETSC_INCLUDE_DIRS ${PETSC_INC}) 34set(PETSC_LIBRARY_DIRS ${PETSC_LIB}) 35set(PETSC_LIBRARIES ${PETSC_LIB}/libpetsc.a ${PETSC_PACKAGE_LIBS}) 36endif(PETSCPKG_FOUND AND (NOT PETSc_DIR)) 37