# Maintainer: Ariel Axionl <i at axionl dot me>

_realname=zxing-cpp
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=3.0.2
pkgrel=2
pkgdesc='A multi-format linear/matrix barcode image processing library implemented in C++ (mingw-w64)'
arch=('any')
mingw_arch=('ucrt64' 'clang64' 'clangarm64')
url='https://github.com/zxing-cpp/zxing-cpp'
msys2_repository_url='https://github.com/zxing-cpp/zxing-cpp'
license=('spdx:Apache-2.0')
depends=("${MINGW_PACKAGE_PREFIX}-cc-libs"
         "${MINGW_PACKAGE_PREFIX}-zint")
makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
             "${MINGW_PACKAGE_PREFIX}-cmake"
             "${MINGW_PACKAGE_PREFIX}-ninja"
             "${MINGW_PACKAGE_PREFIX}-stb")
source=(https://github.com/zxing-cpp/zxing-cpp/releases/download/v${pkgver}/${_realname}-${pkgver}.tar.gz
        001-fix-build-with-gcc-16.patch)
noextract=("${_realname}-${pkgver}.tar.gz")
sha256sums=('e957f13e2ad4e31badb3d9af3f6ba8999a3ca3c9cc4d6bafc98032f9cce1a090'
            'df22682adfe5c31dec7e676f7c75e3feea7bd82bf644048bc53731baa64c70b6')

prepare() {
  echo "Extracrting ${_realname}-${pkgver}.tar.gz ..."
  ${MINGW_PREFIX}/bin/bsdtar -xzf ${_realname}-${pkgver}.tar.gz || true
  cd "${srcdir}"/${_realname}-${pkgver}
  patch -p1 -i "${srcdir}"/001-fix-build-with-gcc-16.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

  MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
  ${MINGW_PREFIX}/bin/cmake.exe \
  -G"Ninja" \
  -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
  "${_extra_config[@]}" \
  -DBUILD_SHARED_LIBS=ON \
  -DZXING_USE_BUNDLED_ZINT=OFF \
  -DZXING_EXAMPLES=OFF \
  -DZXING_BLACKBOX_TESTS=OFF \
  -S ${_realname}-${pkgver} \
  -B build-${MSYSTEM}-shared

  ${MINGW_PREFIX}/bin/cmake.exe --build build-${MSYSTEM}-shared

  MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
  ${MINGW_PREFIX}/bin/cmake.exe \
  -G"Ninja" \
  -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
  "${_extra_config[@]}" \
  -DBUILD_SHARED_LIBS=OFF \
  -DZXING_USE_BUNDLED_ZINT=OFF \
  -DZXING_EXAMPLES=OFF \
  -DZXING_BLACKBOX_TESTS=OFF \
  -S ${_realname}-${pkgver} \
  -B build-${MSYSTEM}-static

  ${MINGW_PREFIX}/bin/cmake.exe --build build-${MSYSTEM}-static
}

package() {
  DESTDIR="${pkgdir}" ${MINGW_PREFIX}/bin/cmake.exe --install build-${MSYSTEM}-static
  DESTDIR="${pkgdir}" ${MINGW_PREFIX}/bin/cmake.exe --install build-${MSYSTEM}-shared

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