diff --git a/packaging/pre_build_script_arm64.sh b/packaging/pre_build_script_arm64.sh new file mode 100644 index 0000000000..483067cc0c --- /dev/null +++ b/packaging/pre_build_script_arm64.sh @@ -0,0 +1,66 @@ +#!/bin/bash + +echo "Building audio 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" +export FFMPEG_ROOT="$DEPENDENCIES_DIR/Library" +export USE_FFMPEG=1 + +# 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 -b 2024.07.12 +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 ffmpeg[ffmpeg]:arm64-windows --x-install-root="$DEPENDENCIES_DIR" + +# Copy files using cp +mkdir -p "$DEPENDENCIES_DIR/Library/" +cp -r "$DEPENDENCIES_DIR/arm64-windows/"* "$DEPENDENCIES_DIR/Library" +cp -r "$DEPENDENCIES_DIR/Library/tools/ffmpeg/"* "$DEPENDENCIES_DIR/Library/bin" +cp -r "$DEPENDENCIES_DIR/Library/bin/"* "$SRC_PATH/src/torio/lib" + +# 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 torch=="$PYTORCH_VERSION" +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."