# Previous maintainer: Sarah Ottinger <schalaalexiazeal@gmail.com>
# Update to 4.3-stable and maintained by: Felix Xing (Felixaszx) felixxing3009@outlook.com
# Base on Arch Linux: https://gitlab.archlinux.org/archlinux/packaging/packages/godot/

_realname=godot
pkgbase=mingw-w64-${_realname}
pkgname=${MINGW_PACKAGE_PREFIX}-${_realname}
pkgver=4.3
pkgrel=3
pkgdesc='An advanced, feature packed, multi-platform 2D and 3D game engine (mingw-w64)'
arch=('any')
mingw_arch=('mingw64' 'ucrt64' 'clang64')
url='https://godotengine.org/'
msys2_references=(
  "cpe: cpe:/a:godotengine:godot"
  "cpe: cpe:/a:godotengine:godot_engine"
)
license=('spdx:MIT')
makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
             "${MINGW_PACKAGE_PREFIX}-pkgconf"
             "${MINGW_PACKAGE_PREFIX}-scons")
depends=("${MINGW_PACKAGE_PREFIX}-brotli"
         "${MINGW_PACKAGE_PREFIX}-embree"
         "${MINGW_PACKAGE_PREFIX}-enet"
         "${MINGW_PACKAGE_PREFIX}-freetype"
         "${MINGW_PACKAGE_PREFIX}-glslang"
         "${MINGW_PACKAGE_PREFIX}-graphite2"
         "${MINGW_PACKAGE_PREFIX}-harfbuzz"
         "${MINGW_PACKAGE_PREFIX}-harfbuzz-icu"
         "${MINGW_PACKAGE_PREFIX}-icu"
         "${MINGW_PACKAGE_PREFIX}-libogg"
         "${MINGW_PACKAGE_PREFIX}-libpng"
         "${MINGW_PACKAGE_PREFIX}-libtheora"
         "${MINGW_PACKAGE_PREFIX}-libvorbis"
         "${MINGW_PACKAGE_PREFIX}-libwebp"
         "${MINGW_PACKAGE_PREFIX}-wslay"
         "${MINGW_PACKAGE_PREFIX}-mbedtls"
         "${MINGW_PACKAGE_PREFIX}-openxr-sdk"
         "${MINGW_PACKAGE_PREFIX}-libsquish"
         "${MINGW_PACKAGE_PREFIX}-zlib"
         "${MINGW_PACKAGE_PREFIX}-zstd")
optdepends=()
source=("https://github.com/godotengine/godot/releases/download/${pkgver}-stable/${_realname}-${pkgver}-stable.tar.xz"
        "001-fix-llvm-duplicate-symbol.patch"
        "002-enforcing-pkgconfig-for-syslib.patch")
sha256sums=('751e55bfad8e04b846f9cf7b6eb80e058986a2cb1b103fc0fe6a4d8526a20e56'
            '47fe087a3bf5cf64bbf168c327c48eb947ec623b4476dbad342b756d566b73c3'
            '65f9750dc991df3d53edba40ea48ab802c5550cc70b9bfcb9274dfd83e7f2906')

prepare() {
  cd ${_realname}-${pkgver}-stable
  patch -p1 -i "../../001-fix-llvm-duplicate-symbol.patch"
  patch -p1 -i "../../002-enforcing-pkgconfig-for-syslib.patch"
}

build() {
  cd ${_realname}-${pkgver}-stable

  declare -a extra_config
  if [[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]]; then
    extra_config+=("use_llvm=yes")
  fi

  scons \
    platform=windows \
    arch=x86_64\
    target=editor \
    optimize=speed\
    production=yes\
    use_mingw=yes\
    use_static_cpp=no\
    builtin_brotli=no\
    builtin_embree=no\
    builtin_enet=no\
    builtin_freetype=no\
    builtin_glslang=no\
    builtin_graphite=no\
    builtin_harfbuzz=no\
    builtin_icu4c=no\
    builtin_libogg=no\
    builtin_libpng=no\
    builtin_libtheora=no\
    builtin_libvorbis=no\
    builtin_libwebp=no\
    builtin_wslay=no\
    builtin_mbedtls=no\
    builtin_openxr=no\
    builtin_squish=no\
    builtin_zlib=no\
    builtin_zstd=no\
    "${extra_config[@]}"
}

package() {
  cd ${_realname}-${pkgver}-stable
  if [[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]]; then
    install -Dm755 bin/godot.windows.editor.x86_64.llvm.exe "${pkgdir}${MINGW_PREFIX}/bin/godot.exe"
  else
    install -Dm755 bin/godot.windows.editor.x86_64.exe "${pkgdir}${MINGW_PREFIX}/bin/godot.exe"
  fi
  install -Dm644 icon.svg "${pkgdir}${MINGW_PREFIX}/share/pixmaps/godot.svg"
  install -D -m644 LICENSE.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/godot/LICENSE.txt"
  install -D -m644 "misc/dist/linux/godot.6" "${pkgdir}${MINGW_PREFIX}/share/man/man6/godot.6"
}

