# Maintainer: Miloš Komarčević <miloskomarcevic@aim.com>

_realname=blosc2
_srcname=c-blosc2
pkgbase=mingw-w64-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}")
pkgver=3.2.1
pkgrel=1
pkgdesc="A blocking, shuffling and lossless compression library (mingw-w64)"
arch=('any')
mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64')
msys2_repository_url='https://github.com/Blosc/c-blosc2'
msys2_references=(
  'anitya: 364020'
  'archlinux: blosc2'
  'cpe: cpe:2.3:a:blosc:c-blosc2'
)
url='https://blosc.org/'
license=('spdx:BSD-3-Clause')
depends=(
  "${MINGW_PACKAGE_PREFIX}-lz4"
  "${MINGW_PACKAGE_PREFIX}-zlib"
  "${MINGW_PACKAGE_PREFIX}-zstd"
)
makedepends=(
  "${MINGW_PACKAGE_PREFIX}-cc"
  "${MINGW_PACKAGE_PREFIX}-cmake"
  "${MINGW_PACKAGE_PREFIX}-ninja"
)
source=("https://github.com/Blosc/c-blosc2/archive/v${pkgver}/${_realname}-${pkgver}.tar.gz")
sha256sums=('945cc68d47ba2817279b5d64c0f9b5edce6849a52ac1a46ba8c3ecaedce35769')

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

  if [[ ${MSYSTEM} == CLANG64 ]]; then
    # for _xgetbv in blosc/shuffle.c. Whether XSAVE will be executated is guarded by runtime check,
    # so it should be safe to enable.
    CFLAGS+=" -mxsave"
  fi

  MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
    cmake \
      -GNinja \
      -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
      "${_extra_config[@]}" \
      -DBUILD_SHARED_LIBS=ON \
      -DPREFER_EXTERNAL_LZ4=ON \
      -DPREFER_EXTERNAL_ZLIB=ON \
      -DPREFER_EXTERNAL_ZSTD=ON \
      -DBUILD_TESTS=OFF \
      -DBUILD_FUZZERS=OFF \
      -DBUILD_BENCHMARKS=OFF \
      -DBUILD_EXAMPLES=OFF \
      -S ${_srcname}-${pkgver} \
      -B build-${MSYSTEM}

  cmake --build build-${MSYSTEM}
}

check() {
  cmake -DBUILD_TESTS=ON -S ${_srcname}-${pkgver} -B build-${MSYSTEM}
  cmake --build build-${MSYSTEM}
  ctest --test-dir build-${MSYSTEM} --output-on-failure
}

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

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