sglang_v0.5.2/vision_0.23.0/packaging/pre_build_script_arm64.sh

70 lines
2.5 KiB
Bash

#!/bin/bash
echo "Building vision dependencies and wheel started."
# Set environment variables
export SRC_PATH="$GITHUB_WORKSPACE/$SRC_DIR"
export CMAKE_BUILD_TYPE="$BUILD_TYPE"
export VCVARSALL_PATH="$DEPENDENCIES_DIR/VSBuildTools/VC/Auxiliary/Build/vcvarsall.bat"
export CONDA_PREFIX="$DEPENDENCIES_DIR"
export PATH="$PATH:$CONDA_PREFIX/Library/bin"
export DISTUTILS_USE_SDK=1
export TRIPLET_FILE="triplets/arm64-windows.cmake"
export PYTORCH_VERSION="$PYTORCH_VERSION"
export CHANNEL="$CHANNEL"
# Dependencies
mkdir -p "$DOWNLOADS_DIR"
mkdir -p "$DEPENDENCIES_DIR"
echo "*" > "$DOWNLOADS_DIR/.gitignore"
echo "*" > "$DEPENDENCIES_DIR/.gitignore"
# Install vcpkg
cd "$DOWNLOADS_DIR" || exit
git clone https://github.com/microsoft/vcpkg.git
cd vcpkg || exit
./bootstrap-vcpkg.sh
# Set vcpkg to only build release packages
echo "set(VCPKG_BUILD_TYPE release)" >> "$TRIPLET_FILE"
# Install dependencies using vcpkg
./vcpkg install libjpeg-turbo:arm64-windows --x-install-root="$DEPENDENCIES_DIR"
./vcpkg install libwebp:arm64-windows --x-install-root="$DEPENDENCIES_DIR"
./vcpkg install libpng[tools]:arm64-windows --x-install-root="$DEPENDENCIES_DIR"
# Copy files using cp
cp "$DEPENDENCIES_DIR/arm64-windows/lib/libpng16.lib" "$DEPENDENCIES_DIR/arm64-windows/lib/libpng.lib"
cp "$DEPENDENCIES_DIR/arm64-windows/bin/libpng16.dll" "$DEPENDENCIES_DIR/arm64-windows/bin/libpng.dll"
cp "$DEPENDENCIES_DIR/arm64-windows/bin/libpng16.pdb" "$DEPENDENCIES_DIR/arm64-windows/bin/libpng.pdb"
mkdir -p "$DEPENDENCIES_DIR/Library/"
cp -r "$DEPENDENCIES_DIR/arm64-windows/"* "$DEPENDENCIES_DIR/Library/"
cp -r "$DEPENDENCIES_DIR/Library/tools/libpng/"* "$DEPENDENCIES_DIR/Library/bin/"
cp -r "$DEPENDENCIES_DIR/Library/bin/"* "$SRC_PATH/torchvision"
# Source directory
cd "$SRC_PATH" || exit
# Create virtual environment
python -m pip install --upgrade pip
python -m venv .venv
echo "*" > .venv/.gitignore
source .venv/Scripts/activate
# Install dependencies
pip install numpy==2.2.3
if [ "$CHANNEL" = "release" ]; then
echo "Installing latest stable version of PyTorch."
# TODO: update when arm64 torch available on pypi
pip3 install --pre torch --index-url https://download.pytorch.org/whl/torch/
elif [ "$CHANNEL" = "test" ]; then
echo "Installing PyTorch version $PYTORCH_VERSION."
pip3 install --pre torch=="$PYTORCH_VERSION" --index-url https://download.pytorch.org/whl/test
else
echo "CHANNEL is not set, installing PyTorch from nightly."
pip3 install --pre torch --index-url https://download.pytorch.org/whl/nightly/cpu
fi
echo "Dependencies install finished successfully."