xref: /phasta/CMakeFiles/FindPETSC.cmake (revision d4a3c8c9787672446a8689d8a56340760b16469e)
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