Files
2026-10-20 12:09:42 +08:00

50 lines
1.1 KiB
Bash

#!/bin/bash
# shellcheck disable=SC2329
set -e
set_max_jobs() {
export MAX_JOBS="${MAX_JOBS:-16}"
echo "Setting MAX_JOBS to $MAX_JOBS"
}
PY_BUILDTAG=$(python -c "import sys, sysconfig; print(f'{sysconfig.get_platform()}-{sys.implementation.cache_tag}')")
PLATFORM_TAG="${DEEPINFER_ACCELERATOR:-nvidia}-$(uname -m)"
BUILD_BASE="build/$PLATFORM_TAG"
SO_DST="deepinfer/_so/$PLATFORM_TAG"
_build() {
set_max_jobs
python setup.py build --build-base "$BUILD_BASE"
(
set +e
set -x
shopt -s failglob
mkdir -p "$SO_DST"
for so in "${BUILD_BASE}/lib.${PY_BUILDTAG}/deepinfer/"*.so; do
ln -fs "$(realpath --relative-to="$SO_DST" "$so")" "$SO_DST/"
done
)
[ -n "$(ls -A "$SO_DST")" ] || { echo "No .so was linked into $SO_DST" >&2; exit 1; }
python -m compileall deepinfer -j "$MAX_JOBS" -q
}
_clean() {
set +e
set -x
rm -rf "$BUILD_BASE" "$SO_DST"
rm -f deepinfer/*.so
find . -type d -name "__pycache__" -exec rm -rf {} +
}
case "$1" in
build | clean)
"_$1"
exit 0
;;
*)
echo "Unknown command: '$1'"
exit 1
;;
esac