# Maintainer: aur.chaotic.cx

_pkgname="vcmi"
pkgname="$_pkgname-git"
pkgver=1.7.4.r1022.g83df53a
pkgrel=2
pkgdesc="Open-source game engine for Heroes of Might and Magic III"
arch=('x86_64')
url="https://github.com/vcmi/vcmi"
license=(
  'GPL-2.0-or-later' # program
  'CC-BY-SA-4.0'     # assets
)

depends=(
  'libavcodec.so'
  'libavformat.so'
  'libavutil.so'
  'libboost_filesystem.so'
  'libboost_iostreams.so'
  'libboost_program_options.so'
  'libfmt.so'
  'liblzma.so'
  'libsquish'
  'libswresample.so'
  'libswscale.so'
  'libz.so'
  'lua54'
  'minizip'
  'onetbb'
  'onnxruntime'
  'qt6-base'
  'qt6-svg'
  'sdl2'
  'sdl2_image'
  'sdl2_mixer'
  'sdl2_ttf'
)
makedepends=(
  'boost'
  'clang'
  'cmake'
  'git'
  'glaze'
  'lld'
  'ninja'
  'qt6-tools'
)
optdepends=(
  'innoextract: required by vcmibuilder'
  'unshield: required by vcmibuilder'
  'unzip: required by vcmibuilder'
)

options=('!lto')

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

prepare() {
  cd "$_pkgsrc"
  git submodule update --init --recursive --depth=1

  # force Qt6
  sed -e 's/Qt6 Qt5/Qt6/' -i CMakeLists.txt
}

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'
}

build() {
  # gcc generates internal compiler error
  export CC CXX LDFLAGS
  CC=clang
  CXX=clang++
  LDFLAGS+=" -fuse-ld=lld"

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

    -DENABLE_INNOEXTRACT=ON
    -DENABLE_TEST=$CHECKFUNC
  )

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

package() {
  DESTDIR="$pkgdir" cmake --install build
}
