v0.15.0
Loading...
Searching...
No Matches
FindPETSC.cmake
Go to the documentation of this file.
1# - Try to find MOAB
2# Once done this will define
3#
4# PETSC_DIR - directory in which PETSc resides
5# PETSC_ARCH - build architecture
6#
7
8# If unset, try environment
9if(NOT PETSC_DIR)
10 set(PETSC_DIR $ENV{PETSC_DIR})
11endif(NOT PETSC_DIR)
12if(NOT PETSC_ARCH)
13 set(PETSC_ARCH $ENV{PETSC_ARCH})
14endif(NOT PETSC_ARCH)
15
16find_file(PETSC_VARIABLES_FILE petscvariables
17 HINTS
18 ${PETSC_DIR}/${PETSC_ARCH}/conf
19 ${PETSC_DIR}/${PETSC_ARCH}/lib/petsc/conf
20 ${PETSC_DIR}/${PETSC_ARCH}/lib/petsc-conf
21)
22if(NOT PETSC_VARIABLES_FILE)
23 message(FATAL_ERROR ${PETSC_VARIABLES_FILE})
24endif(NOT PETSC_VARIABLES_FILE)
25
26file(STRINGS ${PETSC_VARIABLES_FILE} PETSC_VARIABLES)
27foreach(LINE ${PETSC_VARIABLES})
28 string(REGEX REPLACE " = " ";" FIELDS ${LINE})
29 list(LENGTH FIELDS LISTLEN)
30 if(LISTLEN EQUAL 2)
31 list(GET FIELDS 0 VAR)
32 list(GET FIELDS 1 VAL)
33 set("PETSCVAR_${VAR}" ${VAL} CACHE INTERNAL "petsc varible")
34 #message(STATUS PETSCVAR_${VAR})
35 endif(LISTLEN EQUAL 2)
36endforeach(LINE ${PETSC_VARIABLES})