# Maintainer: Andrew Sun <adsun701@gmail.com>

_realname=dbus-c++
_srcname="lib${_realname}"
_upstream="dbus-cplusplus"
pkgbase=mingw-w64-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}")
pkgver=0.9.0
pkgrel=5
pkgdesc="A C++ API for D-BUS (mingw-w64)"
arch=('any')
mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64')
url="https://dbus-cplusplus.sourceforge.io/"
license=('spdx:LGPL-2.1-or-later')
depends=("${MINGW_PACKAGE_PREFIX}-cc-libs"
         "${MINGW_PACKAGE_PREFIX}-dbus"
         "${MINGW_PACKAGE_PREFIX}-libwinpthread")
makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
             "${MINGW_PACKAGE_PREFIX}-autotools"
             "${MINGW_PACKAGE_PREFIX}-expat")
optdepends=("${MINGW_PACKAGE_PREFIX}-expat: For dbusxx-xml2cpp")
source=("${_realname}-${pkgver}.tar.gz"::"https://sourceforge.net/projects/${_upstream}/files/${_realname}/${pkgver}/${_srcname}-${pkgver}.tar.gz"
        'gcc47.patch'
        'disable-threading.patch'
        'fix-writechar.patch'
        'dbus-c++-0.9.0-mingw.patch'
        'recognize-aarch64.patch')
sha256sums=('bc11ac297b3cb010be904c72789695543ee3fdf3d75cdc8225fd371385af4e61'
            '9d504faf769026dcaabca94c7645373fcadf43ef93c8263c6a85e905798f07c9'
            '38730ee73fe4de320fceab6619579b55861b6b8e0f6d8069a9ddf3d1ad1266c0'
            '34ada5bf31918c63558d0fb3fff63e0f1596f25082ff22e84117927ad7236fce'
            'e015d31d7ab0107046daedcf34195d41ac99fa97453f05953cfceee70dd09f67'
            '2e9ad01692daf749c399209c2e2db70daa70e5086c157c5f70f5d66b0d5baab2')

prepare() {
  cd "${srcdir}"/${_srcname}-${pkgver}
  patch -Np0 -i "${srcdir}/gcc47.patch"
  patch -Np1 -i "${srcdir}/disable-threading.patch"
  patch -Np1 -i "${srcdir}/fix-writechar.patch"
  patch -Np1 -i "${srcdir}/dbus-c++-0.9.0-mingw.patch"
  patch -Np1 -i "${srcdir}/recognize-aarch64.patch"
  autoreconf -vi
}

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

  export LDFLAGS+=" -lexpat -lpthread -lws2_32" # -lpthread needed for i686
  export CPPFLAGS+=" -D_WIN32_WINNT=0x600" # needed to build with winsock2.h
  ../${_srcname}-${pkgver}/configure \
    --prefix=${MINGW_PREFIX} \
    --enable-static \
    --enable-shared \
    --disable-ecore \
    --disable-glib \
    --disable-tests \
    --disable-examples

  make
}

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

  make install DESTDIR="${pkgdir}"

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