# Author: williamjcm <w.jcm59@gmail.com>
# Contributor: mosra <mosra@centrum.cz>
# Based on the AUR PKGBUILD from https://github.com/mosra/magnum-integration and the MSYS2/MinGW PKGBUILD templates

_realname=magnum-integration
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=2020.06
_imgui_pkgver=1.76
pkgrel=1
pkgdesc='Integration libraries for the Magnum C++11/C++14 graphics engine'
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64')
url='https://magnum.graphics/'
license=('MIT')
depends=("${MINGW_PACKAGE_PREFIX}-magnum>=$pkgver"
         "${MINGW_PACKAGE_PREFIX}-bullet"
         "${MINGW_PACKAGE_PREFIX}-eigen3"
         "${MINGW_PACKAGE_PREFIX}-glm")
makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-ninja" 'unzip')
source=("${_realname}-${pkgver}.zip::https://github.com/mosra/magnum-integration/archive/v${pkgver}.zip"
        "https://github.com/ocornut/imgui/archive/v${_imgui_pkgver}.tar.gz")
noextract=("${_realname}-${pkgver}.zip")
sha256sums=('8e5d7ffc9df300eb9fac9cff24e74d40f9a13f5e952bd3185fb002d4d6ac38ed'
            'e482dda81330d38c87bd81597cacaa89f05e20ed2c4c4a93a64322e97565f6dc')

prepare() {
  cd ${srcdir}
  rm -rf ${_realname}-${pkgver}
  unzip ../${_realname}-${pkgver}.zip
}

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

    # Bundle ImGui
    ln -sf $srcdir/imgui-${_imgui_pkgver}/ "$srcdir/${_realname}-${pkgver}/src/MagnumExternal/ImGui"

    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 \
            -G'Ninja' \
            -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
            -DWITH_BULLET=ON \
            -DWITH_DART=OFF \
            -DWITH_EIGEN=ON \
            -DWITH_GLM=ON \
            -DWITH_IMGUI=ON \
            "${extra_config[@]}" \
            ../${_realname}-${pkgver}
    ninja
}

package() {
    cd "${srcdir}"/build-${CARCH}
    DESTDIR="${pkgdir}" ninja install

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