#!/usr/bin/env bash # Build the pinned native dependency beside the Python virtual environment. set -euo pipefail REPO_ROOT="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd -P)" NATIVE_ENV="${SYSTEM_SIMULATION_NATIVE_ENV:-$REPO_ROOT/.venv/native}" VERSION=7.4.0 ARCHIVE_SHA256=679ddacdd77610110e613164e8297d6d0cd35bae8e9c3afc8e8ff6f99a1c2a7b SOURCE_ROOT="$NATIVE_ENV/build/sundials-$VERSION" PREFIX="$NATIVE_ENV/sundials-$VERSION" for tool in curl cmake gcc tar sha256sum; do command -v "$tool" >/dev/null || { echo "Missing build tool: $tool" >&2; exit 1; } done mkdir -p "$SOURCE_ROOT" ARCHIVE="$SOURCE_ROOT/sundials-$VERSION.tar.gz" if [[ ! -f "$ARCHIVE" ]]; then curl --fail --location "https://github.com/LLNL/sundials/releases/download/v$VERSION/sundials-$VERSION.tar.gz" --output "$ARCHIVE" fi printf '%s %s\n' "$ARCHIVE_SHA256" "$ARCHIVE" | sha256sum --check - if [[ ! -d "$SOURCE_ROOT/sundials-$VERSION" ]]; then tar -xzf "$ARCHIVE" -C "$SOURCE_ROOT" fi cmake -S "$SOURCE_ROOT/sundials-$VERSION" -B "$SOURCE_ROOT/build" \ -DCMAKE_INSTALL_PREFIX="$PREFIX" -DCMAKE_BUILD_TYPE=Release \ -DBUILD_STATIC_LIBS=ON -DBUILD_SHARED_LIBS=OFF \ -DBUILD_ARKODE=OFF -DBUILD_CVODES=OFF -DBUILD_IDA=OFF \ -DBUILD_IDAS=OFF -DBUILD_KINSOL=OFF \ -DEXAMPLES_ENABLE_C=OFF -DEXAMPLES_INSTALL=OFF cmake --build "$SOURCE_ROOT/build" --parallel "${CMAKE_BUILD_PARALLEL_LEVEL:-4}" cmake --install "$SOURCE_ROOT/build" echo "Native dependency installed in $PREFIX" echo "The repository .venv Python discovers this default location automatically."