# Maintainer: gigas002 <gigas002@pm.me>
# Contributor: Raziel23 <venom23 at runbox dot com>
# Contributor: Sandy Carter <bwrsandman@gmail.com>

pkgname=vcmi
pkgver=1.7.4
pkgrel=1
pkgdesc="Open-source engine for Heroes of Might and Magic III"
arch=('x86_64' 'armv6h' 'armv7h' 'aarch64')
url="https://github.com/vcmi/vcmi"
license=(
  'GPL-2.0-or-later' # program
  'CC-BY-SA-4.0'     # assets
)
depends=('boost-libs' 'ffmpeg' 'sdl2_image' 'sdl2_mixer' 'sdl2_ttf' 'qt6-base' 'libxkbcommon-x11'
  'hicolor-icon-theme' 'onetbb' 'fuzzylite' 'luajit' 'libsquish')
optdepends=('innoextract: required by vcmibuilder'
  'unshield: required by vcmibuilder'
  'unzip: required by vcmibuilder'
  'onnxruntime: ML-powered combat AI')
makedepends=('boost' 'cmake' 'qt6-tools' 'minizip' 'ninja')
install="${pkgname}.install"
_pkgsrc="${pkgname}-${pkgver}"
source=("${_pkgsrc}.tar.gz::https://github.com/${pkgname}/${pkgname}/releases/download/${pkgver}/VCMI-Sources.tar.gz")
noextract=("${_pkgsrc}.tar.gz")
sha256sums=('bce5a31d0a6bdb4605926d70103a363666d25682cdd380301626eabddaaf38d0')

prepare() {
  mkdir -p "$_pkgsrc"
  bsdtar -C "$_pkgsrc" -xf "$_pkgsrc.tar.gz"

  # force qt6
  sed -i 's/find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets Network)/find_package(QT NAMES Qt6 REQUIRED COMPONENTS Widgets Network)/' "$_pkgsrc/CMakeLists.txt"
  sed -i 's/set(BOOST_COMPONENTS .*)/set(BOOST_COMPONENTS date_time filesystem locale program_options)/' "$_pkgsrc/CMakeLists.txt"
}

build() {
  local _cmake_options=(
    -B build
    -S "$_pkgsrc"
    -G Ninja
    -DCMAKE_INSTALL_PREFIX='/usr'
    -DCMAKE_BUILD_TYPE='Release'
    -DENABLE_TEST=OFF
    -DFORCE_BUNDLED_FL=OFF
    -DENABLE_INNOEXTRACT=OFF
    -DENABLE_DISCORD=OFF # would require network access during build (CPM fetches glaze/fmt)
    -DENABLE_MMAI=OFF    # requires optional onnxruntime
    -Wno-dev
  )

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

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