Files
SystemSimulationApp/bat/setup-native-linux.sh
T

32 lines
1.5 KiB
Bash
Executable File

#!/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."