43 lines
1.3 KiB
Bash
Executable File
43 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
PYTHON_BIN="${PYTHON:-python3}"
|
|
PICKER_BIN="${PICKER:-picker}"
|
|
VERILATOR_BIN="${VERILATOR:-verilator}"
|
|
SWIG_BIN="${SWIG:-swig}"
|
|
|
|
export PATH="$HOME/.local/bin:$PATH"
|
|
export PYTHONPATH="$PWD/src:$PWD/Cache:$HOME/.local/share/picker/python:${PYTHONPATH:-}"
|
|
|
|
printf 'Python: '
|
|
"$PYTHON_BIN" --version
|
|
printf 'Python executable: '
|
|
"$PYTHON_BIN" -c 'import sys; print(sys.executable)'
|
|
printf 'Picker: '
|
|
if command -v "$PICKER_BIN" >/dev/null; then "$PICKER_BIN" --version | tail -1; else echo 'MISSING'; fi
|
|
printf 'Verilator: '
|
|
if command -v "$VERILATOR_BIN" >/dev/null; then "$VERILATOR_BIN" --version; else echo 'MISSING'; fi
|
|
printf 'SWIG: '
|
|
if command -v "$SWIG_BIN" >/dev/null; then "$SWIG_BIN" -version | awk '/SWIG Version/{print $3}'; else echo 'MISSING'; fi
|
|
|
|
"$PYTHON_BIN" - <<'PY'
|
|
import sys
|
|
|
|
missing = []
|
|
required = ['toffee', 'toffee_test', 'pytest']
|
|
for m in required:
|
|
try:
|
|
mod = __import__(m)
|
|
print(f'{m}: OK {getattr(mod, "__version__", "")}')
|
|
except Exception as e:
|
|
print(f'{m}: MISSING/ERROR {e}')
|
|
missing.append(m)
|
|
try:
|
|
import xspcomm
|
|
print('xspcomm: OK')
|
|
except Exception as e:
|
|
print(f'xspcomm: OPTIONAL-BEFORE-GEN_DUT MISSING/ERROR {e}')
|
|
if missing:
|
|
raise SystemExit(f'missing required Python modules: {", ".join(missing)}')
|
|
PY
|