# Maintainer: Lothar Serra Mari <serra@scummvm.org>

_realname=scummvm
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=2.9.1
pkgrel=2
pkgdesc="A 'virtual machine' for several classic graphical point-and-click adventure games (mingw-w64)"
arch=('any')
mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64')
url='https://www.scummvm.org/'
msys2_repository_url='https://github.com/scummvm/scummvm'
msys2_documentation_url='https://docs.scummvm.org/'
license=("spdx:GPL-3.0-or-later")
makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
             "${MINGW_PACKAGE_PREFIX}-pkgconf")
depends=("${MINGW_PACKAGE_PREFIX}-cc-libs"
         "${MINGW_PACKAGE_PREFIX}-a52dec"
         "${MINGW_PACKAGE_PREFIX}-curl"
         "${MINGW_PACKAGE_PREFIX}-faad2"
         "${MINGW_PACKAGE_PREFIX}-freetype"
         "${MINGW_PACKAGE_PREFIX}-flac"
         "${MINGW_PACKAGE_PREFIX}-fluidsynth"
         "${MINGW_PACKAGE_PREFIX}-fribidi"
         "${MINGW_PACKAGE_PREFIX}-glew"
         "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo"
         "${MINGW_PACKAGE_PREFIX}-libmpcdec"
         "${MINGW_PACKAGE_PREFIX}-libogg"
         "${MINGW_PACKAGE_PREFIX}-libopenmpt"
         "${MINGW_PACKAGE_PREFIX}-libvorbis"
         "${MINGW_PACKAGE_PREFIX}-libmad"
         "${MINGW_PACKAGE_PREFIX}-libmpeg2"
         "${MINGW_PACKAGE_PREFIX}-libtheora"
         "${MINGW_PACKAGE_PREFIX}-libpng"
         "${MINGW_PACKAGE_PREFIX}-libvpx"
         $([[ ${CARCH} == aarch64 ]] || echo "${MINGW_PACKAGE_PREFIX}-nasm")
         "${MINGW_PACKAGE_PREFIX}-readline"
         "${MINGW_PACKAGE_PREFIX}-SDL2"
         "${MINGW_PACKAGE_PREFIX}-SDL2_net"
         "${MINGW_PACKAGE_PREFIX}-zlib")
source=("https://downloads.scummvm.org/frs/scummvm/${pkgver}/${_realname}-${pkgver}.tar.xz"
        001-fix-host-cpu-detection.patch)
sha256sums=('6a82f36afa9de758ab1dd377101a26a53f12417cbfd350bb8e5d7fd5b8c257e3'
            '7b669440a03b26eb638746f65b9f454028bf2593e116af0ccc68fe17dbae87cf')

apply_patch_with_msg() {
  for _patch in "$@"
  do
    msg2 "Applying ${_patch}"
    patch -p1 -i "${srcdir}/${_patch}"
  done
}

prepare() {
  cd ${_realname}-${pkgver}

  apply_patch_with_msg \
    001-fix-host-cpu-detection.patch
}

build() {
  mkdir -p build-${MSYSTEM} && cd build-${MSYSTEM}

  declare -a _extra_config
  if check_option "debug" "n"; then
    _extra_config+=("--enable-release" "--enable-optimizations" "--disable-debug")
  else
    _extra_config+=("--disable-release" "--disable-optimizations" "--enable-debug")
  fi

  export host=${MINGW_CHOST}
  export host_cpu=${CARCH}
  export build=${MINGW_CHOST}

  # Suppress some annoying warnings
  CXXFLAGS+=" -Wno-deprecated-declarations -Wno-strict-aliasing"
  if [[ ${MSYSTEM} == CLANG* ]]; then
    CXXFLAGS+=" -Wno-nontrivial-memcall -Wno-unused-but-set-variable"
  else
    CXXFLAGS+=" -Wno-cast-user-defined -Wno-class-memaccess -Wno-maybe-uninitialized -Wno-stringop-truncation"
  fi

  ../${_realname}-${pkgver}/configure \
    --prefix=${MINGW_PREFIX} \
    "${_extra_config[@]}"

  make
}

package() {
  cd build-${MSYSTEM}
  make DESTDIR="${pkgdir}" install

  install -Dm644 "${srcdir}"/${_realname}-${pkgver}/COPYING "${pkgdir}"${MINGW_PREFIX}/share/licenses/scummvm/LICENSE
}
