# Maintainer: Biswapriyo Nath <nathbappai@gmail.com>

_realname=aws-c-event-stream
pkgbase=mingw-w64-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}")
pkgver=1.0.0
pkgrel=1
pkgdesc='C99 implementation of the vnd.amazon.eventstream content-type (mingw-w64)'
arch=('any')
mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64')
url='https://github.com/awslabs/aws-c-event-stream'
msys2_repository_url='https://github.com/awslabs/aws-c-event-stream'
msys2_references=(
  'archlinux: aws-c-event-stream'
  'gentoo: dev-libs/aws-c-event-stream'
)
license=('spdx:Apache-2.0')
depends=(
  "${MINGW_PACKAGE_PREFIX}-aws-checksums"
  "${MINGW_PACKAGE_PREFIX}-aws-c-common"
  "${MINGW_PACKAGE_PREFIX}-aws-c-io"
)
makedepends=(
  "${MINGW_PACKAGE_PREFIX}-cc"
  "${MINGW_PACKAGE_PREFIX}-cmake"
  "${MINGW_PACKAGE_PREFIX}-ninja"
)
conflicts=("${MINGW_PACKAGE_PREFIX}-aws-sdk-cpp<1.8.149")
source=("${url}/archive/v${pkgver}/${_realname}-${pkgver}.tar.gz")
sha256sums=('c3817ab04bf9c70fa3582a31243666a9a643ebe45f121f58d5fef5ff4787f8e0')

build() {
  declare -a _cmake_opts=(
    -GNinja
    -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX}
    -DCMAKE_PREFIX_PATH=${MINGW_PREFIX}
    -DBUILD_TESTING=OFF
    -S "${_realname}-${pkgver}"
  )
  if check_option "debug" "n"; then
    _cmake_opts+=("-DCMAKE_BUILD_TYPE=Release")
  else
    _cmake_opts+=("-DCMAKE_BUILD_TYPE=Debug")
  fi

  CFLAGS+=" -Wno-format"

  MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
    cmake \
      "${_cmake_opts[@]}" \
      -DBUILD_SHARED_LIBS=OFF \
      -B build-${MSYSTEM}-static

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

  MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
    cmake \
      "${_cmake_opts[@]}" \
      -DBUILD_SHARED_LIBS=ON \
      -B build-${MSYSTEM}-shared

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

check() {
  cmake -DBUILD_TESTING=ON -S "${_realname}-${pkgver}" -B build-${MSYSTEM}-static
  cmake --build build-${MSYSTEM}-static
  ctest --test-dir build-${MSYSTEM}-static --output-on-failure

  cmake -DBUILD_TESTING=ON -S "${_realname}-${pkgver}" -B build-${MSYSTEM}-shared
  cmake --build build-${MSYSTEM}-shared
  PATH="$PWD/build-${MSYSTEM}-shared:$PATH" \
    ctest --test-dir build-${MSYSTEM}-shared --output-on-failure
}

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

  DESTDIR="${pkgdir}" cmake --install build-${MSYSTEM}-shared

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