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