xref: /petsc/lib/petsc/bin/maint/validate-petsc4py.sh (revision ebcb266d3a667e450268eb330045d5d1ecf6fdff)
1#!/bin/bash
2# Check the (prefix) installation of petsc4py, try to import
3
4set -e
5
6die () {
7	echo "ERROR: validate-petsc4py:" "$@" 1>&2
8	exit 1
9}
10
11if [[ -z "${PYTHON}" ]]
12then
13	PYTHON=python
14fi
15
16[[ -n "${PETSC_DIR}" ]] || die "PETSC_DIR var not set"
17
18# Subdirectory of PETSC_DIR where petsc4py bindings get installed
19PY_DIR=lib
20PETSC_CFG="${PETSC_DIR}/${PY_DIR}/petsc4py/lib/petsc.cfg"
21
22[[ -f "${PETSC_CFG}" ]] || die "cfg file not found: ${PETSC_CFG}"
23grep -q "^\s*PETSC_DIR\s*=\s*${PWD}/${T_PREFIX}\s*\$" "${PETSC_CFG}" || \
24	die "invalid PETSC_DIR value in ${PETSC_CFG}"
25grep -q "^\s*PETSC_ARCH\s*=\s*\$" "${PETSC_CFG}" || \
26	die "invalid PETSC_ARCH value in ${PETSC_CFG}"
27
28PYTHONPATH="${PETSC_DIR}/${PY_DIR}:${PYTHONPATH}" \
29	${PYTHON} -m petsc4py -help || \
30	die "failed to import and invoke petsc4py"
31