pkgname=onelauncher
pkgver=0.1.0
pkgrel=2
pkgdesc='Next-generation open source Minecraft launcher'
url='https://polyfrost.org/launcher'
arch=('x86_64')
license=('GPL3')

makedepends=('rust' 'pnpm')
depends=(
    'openssl-1.1' 'dbus' 'freetype2' 'gtk3' 'libappindicator-gtk3' 'librsvg' 'libsoup' 'webkit2gtk'
    'libgl' 'libpulse' 'libx11' 'libxcursor' 'libxext' 'libxxf86vm'
)
optdepends=(
    'xorg-xrandr: very legacy minecraft versions'
)
conflicts=('onelauncher-bin')
source=(
    "$pkgname-$pkgver.tar.gz:https://github.com/polyfrost/onelauncher/archive/refs/tags/v${pkgver}.tar.gz"
    "onelauncher.desktop"
)
sha256sums=('')
options=('!lto')

prepare() {
    cd "onelauncher-${pkgver}"
    export RUSTUP_TOOLCHAIN=stable
    cargo fetch --locked --target "$CARCH-unknown-linux-gnu"
    pnpm install --frozen-lockfile --no-optional
}

build() {
    cd "onelauncher-${pkgver}"
    pnpm --filter @onelauncher/gui build
    export RUSTUP_TOOLCHAIN=stable 
    cargo build --frozen --release --all-features
}

check() {
    cd "onelauncher-${pkgver}"
    export RUSTUP_TOOLCHAIN=stable
    cargo test --frozen --all-features
}

package() {
    install -Dm755 "$srcdir"/onelauncher-"$pkgver"/target/release/onelauncher_gui "$pkgdir"/usr/bin/onelauncher
    install -Dm644 "$srcdir"/onelauncher-"$pkgver"/onelauncher_gui/src-tauri/icons/128x128.png "$pkgdir"/usr/share/icons/hicolor/128x128/apps/onelauncher.png
    install -Dm644 "$srcdir"/onelauncher-"$pkgver"/onelauncher_gui/src-tauri/icons/icon.png "$pkgdir"/usr/share/icons/hicolor/256x256@2/apps/onelauncher.png
    install -Dm644 onelauncher.desktop "$pkgdir"/usr/share/applications/onelauncher.desktop
}
