pkgname=mingw-w64-clang-aarch64-protobuf
_pkgname=protobuf
pkgver=34.1
pkgrel=1.1
pkgdesc="Protocol Buffers - Google's data interchange format (mingw-w64-clang-aarch64)"
arch=('any')
url='https://developers.google.com/protocol-buffers/'
license=('BSD-3-Clause')
depends=(mingw-w64-clang-aarch64-zlib mingw-w64-clang-aarch64-abseil-cpp)
makedepends=(mingw-w64-clang-aarch64-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
         protobuf-33-patch-enum-traits-impl.patch)
sha256sums=('e4e6ff10760cf747a2decd1867741f561b216bd60cc4038c87564713a6da1848'
            '92ee16fe5fb198a345a40ded30ecce4fef0f86089545a300773b64bcc91eb9c2'
            'a5183b4028eb063e0f1d689b1197e45305368df74a2ea018dbea63b4ef925fae'
            '0627dce1d28f90607a45ce0148631dcb517157d67646167b55707f4bb3d9add4')

_architectures="aarch64-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
  patch -p1 -i ../protobuf-33-patch-enum-traits-impl.patch
}

build() {
  cd ${_pkgname}-${pkgver}
  local flags=(-Dprotobuf_BUILD_TESTS=OFF -Dprotobuf_ABSL_PROVIDER=package)
  for _arch in ${_architectures}; do
    source mingw-clang-env $_arch
    ${_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
    source mingw-clang-env $_arch
    DESTDIR=$pkgdir cmake --install build-${_arch}
    DESTDIR=$pkgdir cmake --install build-static-${_arch}
    $STRIP --strip-unneeded "$pkgdir"/usr/${_arch}/bin/*.dll
    $STRIP -g "$pkgdir"/usr/${_arch}/lib/*.a "$pkgdir"/usr/${_arch}/static/lib/*.a
  done
}
