#!/usr/bin/env bash
# Cross-compile minecraft.exe for Windows (x86-64) from Arch Linux
set -e

echo "=== Встановлення залежностей ==="

# MinGW toolchain (з офіційних репозиторіїв)
sudo pacman -S --needed --noconfirm mingw-w64

# AUR-пакети: GLFW і Vulkan для Windows
if command -v paru &>/dev/null; then
    AUR_CMD=paru
elif command -v yay &>/dev/null; then
    AUR_CMD=yay
else
    echo "ПОМИЛКА: потрібен paru або yay для AUR-пакетів."
    echo "Встановіть: sudo pacman -S --needed base-devel git && git clone https://aur.archlinux.org/paru.git && cd paru && makepkg -si"
    exit 1
fi

$AUR_CMD -S --needed --noconfirm \
    mingw-w64-vulkan-headers \
    mingw-w64-vulkan-icd-loader \
    mingw-w64-glfw

echo ""
echo "=== Компіляція шейдерів (SPIR-V платформонезалежний) ==="
glslc shaders/triangle.vert -o shaders/triangle.vert.spv
glslc shaders/triangle.frag -o shaders/triangle.frag.spv

echo ""
echo "=== Збірка minecraft.exe ==="
cmake -B build-windows \
    -DCMAKE_TOOLCHAIN_FILE=toolchain-mingw64.cmake \
    -DCMAKE_BUILD_TYPE=Release

cmake --build build-windows -j"$(nproc)"

echo ""
echo "=== Готово! ==="
echo ""
echo "Файли для копіювання на Windows:"
echo "  build-windows/minecraft.exe"
echo "  shaders/     (весь каталог)"
echo "  textures/    (весь каталог)"
echo ""
echo "На ПК з Windows також потрібна vulkan-1.dll."
echo "Вона входить до Vulkan Runtime, який встановлюється разом"
echo "з будь-яким Vulkan-сумісним драйвером відеокарти (NVIDIA/AMD/Intel)."
echo "Якщо її немає — встановити з: https://vulkan.lunarg.com/sdk/home#windows"
