# Maintainer: Jordan Irwin <antumdeluge@gmail.com>

_realname=liblcf
pkgbase="mingw-w64-${_realname}"
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=0.8
pkgrel=5
pkgdesc="Library to handle RPG Maker 2000/2003 and EasyRPG game data (mingw-w64)"
arch=("any")
mingw_arch=("mingw64" "ucrt64" "clang64")
url="https://easyrpg.org/"
msys2_repository_url="https://github.com/EasyRPG/liblcf"
license=('spdx:MIT')
depends=("${MINGW_PACKAGE_PREFIX}-expat"
         "${MINGW_PACKAGE_PREFIX}-icu")
makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
             "${MINGW_PACKAGE_PREFIX}-cmake"
             "${MINGW_PACKAGE_PREFIX}-ninja"
             "${MINGW_PACKAGE_PREFIX}-pkgconf")
source=("https://github.com/EasyRPG/liblcf/archive/${pkgver}/${_realname}-${pkgver}.tar.gz"
        0001-include-stdint.patch
        0002-require-c++17.patch::https://github.com/EasyRPG/liblcf/commit/8c782e54.patch
        0003-fix-build-with-clang-19.patch::https://github.com/EasyRPG/liblcf/commit/cd228281.patch)
sha256sums=('aa5664145842a39442e9bbf178273e91816d6d6bf6db7347196bde518dfb431e'
            '474777d5eb40ed787a0f8f9a0570cb0f8076df38a588b550059ecbcf901f2308'
            '25ca0f3b1440a1db832fe7d3418ebc099a23649c99920572ff44fec2273de588'
            '7eb5dbd8620e7e75381b8d84269bc7a6f5a813771ec552f8e273c34b780a737a')

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

prepare() {
  cd "${_realname}-${pkgver}"
  apply_patch_with_msg \
    0001-include-stdint.patch \
    0002-require-c++17.patch \
    0003-fix-build-with-clang-19.patch
}

build() {
  declare -a extra_config
  if check_option "debug" "n"; then
    extra_config+=("-DCMAKE_BUILD_TYPE=Release")
  else
    extra_config+=("-DCMAKE_BUILD_TYPE=Debug")
  fi

  mkdir -p "${srcdir}/build-${MSYSTEM}-shared" && cd "${srcdir}/build-${MSYSTEM}-shared"

  MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
  ${MINGW_PREFIX}/bin/cmake.exe \
    -G "Ninja" \
    -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
    -DBUILD_SHARED_LIBS=ON \
    "${extra_config[@]}" \
    ../${_realname}-${pkgver}

  "${MINGW_PREFIX}/bin/cmake.exe" --build ./

  mkdir -p "${srcdir}/build-${MSYSTEM}-static" && cd "${srcdir}/build-${MSYSTEM}-static"

  MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
  ${MINGW_PREFIX}/bin/cmake.exe \
    -G "Ninja" \
    -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
    -DBUILD_SHARED_LIBS=OFF \
    "${extra_config[@]}" \
    ../${_realname}-${pkgver}

  "${MINGW_PREFIX}/bin/cmake.exe" --build ./
}

package() {
  cd "${srcdir}/build-${MSYSTEM}-static"
  DESTDIR="${pkgdir}" "${MINGW_PREFIX}/bin/cmake.exe" --install ./

  cd "${srcdir}/build-${MSYSTEM}-shared"
  DESTDIR="${pkgdir}" "${MINGW_PREFIX}/bin/cmake.exe" --install ./

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