_realname=libmediainfo
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=24.01
pkgrel=2
pkgdesc="Supplies technical and tag information about media files (mingw-w64)"
arch=('any')
mingw_arch=('mingw64' 'ucrt64' 'clang64')
url="https://mediaarea.net"
license=("spdx:BSD-2-Clause")
makedepends=(
  "${MINGW_PACKAGE_PREFIX}-cc"
  "${MINGW_PACKAGE_PREFIX}-cmake"
)
depends=(
  "${MINGW_PACKAGE_PREFIX}-gcc-libs"
  "${MINGW_PACKAGE_PREFIX}-curl"
  "${MINGW_PACKAGE_PREFIX}-glib2"
  "${MINGW_PACKAGE_PREFIX}-libzen"
  "${MINGW_PACKAGE_PREFIX}-tinyxml2"
  "${MINGW_PACKAGE_PREFIX}-graphviz"
  "${MINGW_PACKAGE_PREFIX}-zlib"
)

source=("https://mediaarea.net/download/source/${_realname}/${pkgver}/${_realname}_${pkgver}.tar.bz2"
        001-fix-win32-build.patch
        002-dllname.patch)
sha256sums=('da08ff9b6d6a66ad31d5a022bf96dc583bd5d245f71b6fd32c1a8a3ce9e0df94'
            'e5ff9f586b07c638bfea79055543c5f9b24f88b74ccba38f3176b432ba55e30e'
            'c13a7ad987431c518233566592408b2f26d00622a901f893ba066023884512dd')

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

prepare() {
  cd "${srcdir}/MediaInfoLib"

  apply_patch_with_msg \
    001-fix-win32-build.patch \
    002-dllname.patch
}

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

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

  MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
  ${MINGW_PREFIX}/bin/cmake \
    -DCMAKE_INSTALL_PREFIX="${MINGW_PREFIX}" \
    -GNinja \
    "${_extra_config[@]}" \
    -DBUILD_ZENLIB="OFF" \
    -DBUILD_ZLIB="OFF" \
    -DBUILD_SHARED_LIBS="ON" \
    -DBIN_INSTALL_DIR="bin" \
    -DLIB_INSTALL_DIR="lib" \
    -DINCLUDE_INSTALL_DIR:PATH="include" \
    -DCMAKE_DLL_NAME_WITH_SOVERSION=ON \
    ../MediaInfoLib/Project/CMake

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

package() {
  cd "${srcdir}/build-${MSYSTEM}"

  DESTDIR=${pkgdir} ${MINGW_PREFIX}/bin/cmake.exe --install .

  install -vDm 644 "${srcdir}/MediaInfoLib/LICENSE" -t "${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname/"
  install -vDm 644 "${srcdir}/MediaInfoLib/"{History_DLL.txt,README.md} -t "${pkgdir}${MINGW_PREFIX}/share/doc/$_realname/"
}
