# Maintainer: Alexey Pavlov <alexpux@gmail.com>

_realname=field3d
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=1.7.3
pkgrel=5
pkgdesc="Open source library for storing voxel data (mingw-w64)"
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32' 'clangarm64')
url="https://sites.google.com/site/field3d/"
license=("spdx:BSD-3-Clause")
depends=("${MINGW_PACKAGE_PREFIX}-boost"
         "${MINGW_PACKAGE_PREFIX}-hdf5"
         "${MINGW_PACKAGE_PREFIX}-openexr")
makedepends=("${MINGW_PACKAGE_PREFIX}-cmake"
             "${MINGW_PACKAGE_PREFIX}-ninja"
             "${MINGW_PACKAGE_PREFIX}-cc"
             "${MINGW_PACKAGE_PREFIX}-doxygen")
options=('strip' 'buildflags')
source=(${_realname}-${pkgver}.tar.gz::https://github.com/imageworks/Field3D/archive/v${pkgver}.tar.gz
        001-cmake-mingw.patch
        002-win32-fix-exported-symbols.patch
        005-fix-build-hdf5-1.12.patch
        006-clang-fixes.patch
        007-fix-build-openexr.patch)
sha256sums=('b6168bc27abe0f5e9b8d01af7794b3268ae301ac72b753712df93125d51a0fd4'
            'b1ab7061710ebd9334acd3ce6b47c899f4a69c2005204fbe3c8a857c7fe3ea86'
            '087a28c98a48f0ea1451b1a1d34e5fc102caecb45cb1219f7d65df5b18015b26'
            '01fda162386063c4426f18a38dd1d545c5b9609b8c63b322dd7814e76b37bdfa'
            '657409d10c62baf959e01071c58661ea40288b028f3941424511e5faa22c208d'
            '27b6d818f22987ea0197db3781c5f7e4505a27d5b44ffdbcd0ce7156cfb39fd9')

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

prepare() {
  cd ${srcdir}/Field3D-${pkgver}
  apply_patch_with_msg \
    001-cmake-mingw.patch \
    002-win32-fix-exported-symbols.patch \
    005-fix-build-hdf5-1.12.patch \
    006-clang-fixes.patch \
    007-fix-build-openexr.patch
}

build() {
  cd ${srcdir}
  [[ -d shared-${MSYSTEM} ]] && rm -rf shared-${MSYSTEM}
  mkdir -p shared-${MSYSTEM} && cd shared-${MSYSTEM}

  MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
  ${MINGW_PREFIX}/bin/cmake.exe \
    -G"Ninja" \
    -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
    -DBUILD_SHARED_LIBS=ON \
    ../Field3D-${pkgver}
  ${MINGW_PREFIX}/bin/cmake --build .

  cd ${srcdir}
  [[ -d static-${MSYSTEM} ]] && rm -rf static-${MSYSTEM}
  mkdir -p static-${MSYSTEM} && cd static-${MSYSTEM}

  MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
  ${MINGW_PREFIX}/bin/cmake.exe \
    -G"Ninja" \
    -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
    -DBUILD_SHARED_LIBS=OFF \
    ../Field3D-${pkgver}
  ${MINGW_PREFIX}/bin/cmake --build .
}

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

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

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