abinfo "Fetching Rust dependencies ..."
cargo fetch --locked --target "$(rustc --print host-tuple)"

abinfo "Installing yarn via npm ..."
mkdir -pv "$SRCDIR"/.yarn
npm install --prefix "$SRCDIR"/.yarn yarn
export PATH="$SRCDIR/.yarn/node_modules/.bin:$PATH"

abinfo "Preparing Node.js dependencies ..."
rm -v yarn.lock
yarn install --immutable --modules-folder "$SRCDIR"/out/node_modules --ignore-scripts
ln -sv out/node_modules "$SRCDIR"

abinfo "Setting up Python virtual environment ..."
python3 -m venv --system-site-packages --without-pip "$SRCDIR"/out/pyenv

abinfo "Covering Python version ..."
python3 --version | cut -d ' ' -f 2 > "$SRCDIR"/.python-version

abinfo "Setting up build environment ..."
export PYTHON_BINARY=/usr/bin/python3
export PROTOC_BINARY=/usr/bin/protoc
export NODE_BINARY=/usr/bin/node
export YARN_BINARY="$SRCDIR"/.yarn/node_modules/.bin/yarn
export UV_BINARY=/usr/bin/uv
export RELEASE=2
export OFFLINE_BUILD=1
export CARGO_TARGET_DIR="$SRCDIR"/out/rust
export LIBSQLITE3_SYS_USE_PKG_CONFIG=1
export ZSTD_SYS_USE_PKG_CONFIG=1
