mingw.sh 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. #!/usr/bin/env bash
  2. set -euo pipefail
  3. export DEBIAN_FRONTEND=noninteractive
  4. ARCH="${1:-x86_64}"
  5. case "$ARCH" in
  6. x86) triplet=i686-w64-mingw32 ;;
  7. x86_64) triplet=x86_64-w64-mingw32 ;;
  8. *) echo "Unsupported ARCH '$ARCH' (use: x86 | x86_64)"; exit 2 ;;
  9. esac
  10. APT_CACHE="${APT_CACHE:-${RUNNER_TEMP:-/tmp}/apt-cache}"
  11. sudo mkdir -p "$APT_CACHE"
  12. sudo apt -yq -o Acquire::Retries=3 update
  13. sudo apt -yq install eatmydata
  14. sudo eatmydata apt -yq --no-install-recommends \
  15. -o Dir::Cache::archives="$APT_CACHE" \
  16. -o APT::Keep-Downloaded-Packages=true \
  17. -o Acquire::Retries=3 -o Dpkg::Use-Pty=0 \
  18. install \
  19. ninja-build nsis mingw-w64 g++-mingw-w64
  20. if [[ -x "/usr/bin/${triplet}-g++-posix" ]]; then
  21. sudo update-alternatives --set "${triplet}-g++" "/usr/bin/${triplet}-g++-posix"
  22. fi
  23. if [[ -x "/usr/bin/${triplet}-gcc-posix" ]]; then
  24. sudo update-alternatives --set "${triplet}-gcc" "/usr/bin/${triplet}-gcc-posix"
  25. fi
  26. sudo rm -f "$APT_CACHE/lock" || true
  27. sudo rm -rf "$APT_CACHE/partial" || true
  28. sudo chown -R "$USER:$USER" "$APT_CACHE"