# Maintainer: aur.chaotic.cx

_pkgname="ares-emu"
pkgname="$_pkgname-git"
pkgver=148.r53.gcdabe5c
pkgrel=1
pkgdesc="Multi-system emulator focused on accuracy and preservation"
url="https://github.com/ares-emulator/ares"
license=("ISC")
arch=('x86_64')

depends=(
  'gtk3'
  'librashader' # AUR
  'libretro-shaders'
  'sdl3'
)
makedepends=(
  'clang'
  'cmake'
  'git'
  'lld'
  'ninja'
)

provides=("$_pkgname")
conflicts=("$_pkgname")

_pkgsrc="$_pkgname"
source=("$_pkgsrc"::"git+$url.git")
sha256sums=("SKIP")

pkgver() {
  cd "$_pkgsrc"
  git describe --long --tags --abbrev=7 --exclude='*[a-zA-Z][a-zA-Z]*' \
    | sed -E 's/^[^0-9]*//;s/([^-]*-g)/r\1/;s/-/./g'
}

prepare() {
  # clear unwanted settings
  local _files=(
    "$_pkgsrc/cmake"/{macos,windows}/*.cmake
    "$_pkgsrc/cmake/linux/compilerconfig.cmake"
    "$_pkgsrc/cmake/common/versionconfig.cmake"
  )
  for i in "${_files[@]}"; do
    if [ -f "$i" ]; then
      rm -f "$i"
      touch "$i"
    fi
  done
}

build() (
  export CC CXX LDFLAGS
  CC=clang
  CXX=clang++

  local _ldflags=(${LDFLAGS})
  LDFLAGS="${_ldflags[@]//*fuse-ld*/} -fuse-ld=lld"

  local _cmake_options=(
    -B build
    -S "$_pkgsrc"
    -G Ninja
    -DCMAKE_BUILD_TYPE=None
    -DCMAKE_INSTALL_PREFIX='/usr'
    -DCMAKE_CXX_STANDARD=20
    -Wno-author

    -DARES_BUNDLE_SHADERS=OFF
    -DARES_SKIP_DEPS=ON
    -DARES_VERSION="$pkgver"
    -DARES_VERSION_CANONICAL="${pkgver%%.r*}"
  )

  cmake "${_cmake_options[@]}"
  cmake --build build
)

package() {
  DESTDIR="$pkgdir" cmake --install build
  install -Dm644 "$_pkgsrc/LICENSE" -t "$pkgdir/usr/share/licenses/$pkgname/"
}
