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

_realname=dbus
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=1.16.2
pkgrel=3
pkgdesc="Freedesktop.org message bus system (mingw-w64)"
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clangarm64')
url="https://www.freedesktop.org/wiki/Software/dbus"
msys2_references=(
  "cpe: cpe:/a:d-bus_project:d-bus"
  "cpe: cpe:/a:freedesktop:dbus"
)
license=('spdx:AFL-2.1 OR GPL-2.0-or-later')
makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
             "${MINGW_PACKAGE_PREFIX}-cmake"
             "${MINGW_PACKAGE_PREFIX}-ninja"
             "${MINGW_PACKAGE_PREFIX}-pkgconf"
             "${MINGW_PACKAGE_PREFIX}-expat"
             "${MINGW_PACKAGE_PREFIX}-glib2"
             "${MINGW_PACKAGE_PREFIX}-doxygen")
source=("https://dbus.freedesktop.org/releases/dbus/${_realname}-${pkgver}.tar.xz"{,.asc}
        "0001-add-aarch64-backtrace-support.patch"
        "0002-enable-static-lib.patch")
sha256sums=('0ba2a1a4b16afe7bceb2c07e9ce99a8c2c3508e5dec290dbb643384bd6beb7e2'
            'SKIP'
            '8938f866ffa1699f24fe6c92334d17c3c65b595044156f35833ed731461c9dc3'
            '870286583ee0c2349652fc163567789b5648c7db89ce68430dad0ac4710c4399')
validpgpkeys=('DA98F25C0871C49A59EAFF2C4DE8FF2A63C7CC90')

prepare() {
  cd "${srcdir}/${_realname}-${pkgver}"

  patch -Np1 -i "${srcdir}/0001-add-aarch64-backtrace-support.patch"
  patch -Np1 -i "${srcdir}/0002-enable-static-lib.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

  # dbus defaults to __USE_MINGW_ANSI_STDIO=0
  CFLAGS+=" -U__USE_MINGW_ANSI_STDIO"
  MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
    cmake \
      -GNinja \
      -DCMAKE_INSTALL_PREFIX="${MINGW_PREFIX}" \
      -DBUILD_SHARED_LIBS=OFF \
      -DDBUS_ENABLE_XML_DOCS=OFF \
      "${extra_config[@]}" \
      -S ${_realname}-${pkgver} \
      -B "build-${MSYSTEM}-static"

  cmake --build "build-${MSYSTEM}-static"

  CFLAGS+=" -U__USE_MINGW_ANSI_STDIO"
  MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
    cmake \
      -GNinja \
      -DCMAKE_INSTALL_PREFIX="${MINGW_PREFIX}" \
      -DDBUS_ENABLE_XML_DOCS=OFF \
      "${extra_config[@]}" \
      -S ${_realname}-${pkgver} \
      -B "build-${MSYSTEM}-shared"

  cmake --build "build-${MSYSTEM}-shared"
}

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

package() {
  DESTDIR="${pkgdir}" cmake --install build-${MSYSTEM}-static
  DESTDIR="${pkgdir}" cmake --install build-${MSYSTEM}-shared

  install -Dt "${pkgdir}"${MINGW_PREFIX}/share/licenses/${_realname} -m644 "${srcdir}"/${_realname}-${pkgver}/COPYING
  install -Dt "${pkgdir}"${MINGW_PREFIX}/share/licenses/${_realname} -m644 "${srcdir}"/${_realname}-${pkgver}/LICENSES/{AFL-2.1,GPL-2.0-or-later}.txt
}
