#!/usr/bin/env bash
set -euo pipefail
trap 'echo "ERROR: build failed in ${BASH_SOURCE[0]} at line ${LINENO}" >&2' ERR

SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
export SCRIPT_DIR

PROJECT_DIR="$(cd "$SCRIPT_DIR/../.." && pwd)"

if [[ ! -d "$PROJECT_DIR" ]]; then
  echo "Project directory $PROJECT_DIR does not exist" >&2
  exit 1
fi

if [[ ! -f "$PROJECT_DIR/pyproject.toml" && ! -f "$PROJECT_DIR/setup.py" ]]; then
  echo "Invalid Python project directory, did not find either pyproject.toml or setup.py in $PROJECT_DIR" >&2
  exit 1
fi

echo "Project Directory: $PROJECT_DIR" >&2

if [ ! -f /opt/homebrew/bin/brew ]; then
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    echo >> $HOME/.zprofile
    echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> $HOME/.zprofile
    eval "$(/opt/homebrew/bin/brew shellenv)"
fi
brew install wget automake nasm libtool pkgconfig cmake ninja

BASE="$PWD"
export BUILD="$BASE/build"
export SOURCE="$BASE/source"
export BIN="$BASE/bin"
export MACOSX_DEPLOYMENT_TARGET=15.0
export _PYTHON_HOST_PLATFORM="macosx-15.0-arm64"
export ARCHFLAGS="-arch arm64"
export PKG_CONFIG_PATH="$BUILD/lib/pkgconfig"
export SDL2_DIR="$BUILD"
export PATH="/usr/local/bin:$PATH"

mkdir -p $SOURCE
mkdir -p $BIN

"$SCRIPT_DIR/build_libs"

cd "$PROJECT_DIR/scripts/mac/python"
versions=("3.10.11" "3.11.9" "3.12.9" "3.13.2" "3.14.2")
for version in "${versions[@]}"; do
    ./install_python $version
done

cd "$PROJECT_DIR"
venvs=("py310" "py311" "py312" "py313" "py314")
#venvs=("py313")
for venv in "${venvs[@]}"; do
    source $HOME/$venv/bin/activate
    python --version
    pip install build delocate
    python -m build --sdist --wheel
    wheel=$(ls -1 dist/*${venv:2}*)
    echo $wheel
    delocate-wheel -w fixed_wheels --require-archs=arm64  -v "$wheel"
    deactivate
done
