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