pkgname=mingw-w64-protobuf
_pkgname=protobuf
pkgver=32.1
pkgrel=1
pkgdesc="Protocol Buffers - Google's data interchange format (mingw-w64)"
arch=('any')
url='https://developers.google.com/protocol-buffers/'
license=('BSD-3-Clause')
depends=(mingw-w64-zlib mingw-w64-abseil-cpp)
makedepends=(mingw-w64-cmake-static protobuf)
options=(!strip !buildflags staticlibs)
source=("https://github.com/protocolbuffers/${_pkgname}/releases/download/v$pkgver/${_pkgname}-$pkgver.tar.gz"
         0002-Fix-windres-invocation.patch
         0003-Demote-error-about-buildtime-runtime-version-differe.patch)
sha256sums=('3feeabd077a112b56af52519bc4ece90e28b4583f4fc2549c95d765985e0fd3c'
            '92ee16fe5fb198a345a40ded30ecce4fef0f86089545a300773b64bcc91eb9c2'
            'a5183b4028eb063e0f1d689b1197e45305368df74a2ea018dbea63b4ef925fae')

_architectures="i686-w64-mingw32 x86_64-w64-mingw32"

prepare() {
  cd ${_pkgname}-${pkgver}
  patch -p1 -i ../0002-Fix-windres-invocation.patch
  patch -p1 -i ../0003-Demote-error-about-buildtime-runtime-version-differe.patch
}

build() {
  cd ${_pkgname}-${pkgver}
  local flags=(-Dprotobuf_BUILD_TESTS=OFF -Dprotobuf_ABSL_PROVIDER=package)
  for _arch in ${_architectures}; do
    ${_arch}-cmake -B build-${_arch} "${flags[@]}" .
    cmake --build build-${_arch}
    ${_arch}-cmake-static -B build-static-${_arch} -DCMAKE_INSTALL_PREFIX:PATH=/usr/$_arch/static "${flags[@]}" .
    cmake --build build-static-${_arch}
  done
}

package() {
  cd ${_pkgname}-${pkgver}
  for _arch in ${_architectures}; do
    DESTDIR=$pkgdir cmake --install build-${_arch}
    DESTDIR=$pkgdir cmake --install build-static-${_arch}
    ${_arch}-strip --strip-unneeded "$pkgdir"/usr/${_arch}/bin/*.dll
    ${_arch}-strip -g "$pkgdir"/usr/${_arch}/lib/*.a "$pkgdir"/usr/${_arch}/static/lib/*.a
  done
}
