32 lines
1.5 KiB
Bash
Executable File
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."
|