# Maintainer: Warlock Studio <negroayub97@gmail.com>
# Contributor: Ivan Ayub
# Arch Linux PKGBUILD — builds Warlock Studio from source using PyInstaller
# =============================================================================
# This PKGBUILD is provided for reference / self-build. For AUR submission
# replace pkgver() with the actual release tag and uncomment source=() array.
# =============================================================================

pkgname=warlock-studio
pkgver=6.0
pkgrel=1
pkgdesc="AI-powered video upscaling, restoration, denoising and frame interpolation"
arch=('x86_64')
url="https://github.com/Ivan-Ayub97/Warlock-Studio"
license=('MIT')
depends=(
    'python'
    'python-pip'
    'python-customtkinter'
    'python-opencv'
    'python-numpy'
    'python-pillow'
    'python-moviepy'
    'python-natsort'
    'python-packaging'
    'python-psutil'
    'python-requests'
    'python-tkinterdnd2'
    'tk'
    'onnxruntime-opt'   # or onnxruntime for CPU-only
    'ffmpeg'
    'libxkbcommon'
    'libxcb'
    'libgl'
)
makedepends=(
    'python-build'
    'python-installer'
    'python-wheel'
    'python-pyinstaller'
)
optdepends=(
    'python-onnxruntime-opt: GPU-accelerated ONNX inference (CUDA)'
    'python-onnxruntime-directml: DirectML backend for Windows (not applicable)'
)
conflicts=()
provides=("${pkgname}")
source=("${pkgname}-${pkgver}.tar.gz::${url}/archive/v${pkgver}.tar.gz")
sha256sums=('SKIP')
validpgpkeys=()

build() {
    cd "${srcdir}/${pkgname}-${pkgver}"

    # Install Python dependencies into temporary venv for PyInstaller
    python -m venv --system-site-packages _buildenv
    source _buildenv/bin/activate

    pip install --no-input --no-cache-dir -r requirements.txt
    pip install --no-input --no-cache-dir pyinstaller

    # Build with PyInstaller
    pyinstaller Warlock-Studio.spec --noconfirm

    deactivate
    rm -rf _buildenv
}

package() {
    cd "${srcdir}/${pkgname}-${pkgver}"

    # Install into /opt/warlock-studio
    install -dm755 "${pkgdir}/opt/warlock-studio"
    cp -r dist/Warlock-Studio/* "${pkgdir}/opt/warlock-studio/"

    # Desktop entry
    install -dm755 "${pkgdir}/usr/share/applications"
    cat > "${pkgdir}/usr/share/applications/warlock-studio.desktop" << EOF
[Desktop Entry]
Name=Warlock Studio
Comment=AI-powered video upscaling, restoration and frame interpolation
Exec=/opt/warlock-studio/Warlock-Studio
Icon=warlock-studio
Terminal=false
Type=Application
Categories=Graphics;Video;AudioVideo;
StartupWMClass=Warlock-Studio
EOF

    # Icon
    install -dm755 "${pkgdir}/usr/share/icons/hicolor/256x256/apps"
    install -m644 logo.ico "${pkgdir}/usr/share/icons/hicolor/256x256/apps/warlock-studio.ico" 2>/dev/null || true

    # Symlink to PATH
    install -dm755 "${pkgdir}/usr/bin"
    ln -sf "/opt/warlock-studio/Warlock-Studio" "${pkgdir}/usr/bin/warlock-studio"

    # License
    install -dm755 "${pkgdir}/usr/share/licenses/${pkgname}"
    install -m644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/" 2>/dev/null || true
}

# vim:set ts=2 sw=2 et:
