# Maintainer: Ray Donnelly <mingw.android@gmail.com>

_realname=creduce
pkgbase=mingw-w64-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}")
replaces=("${MINGW_PACKAGE_PREFIX}-${_realname}-git")
pkgver=2.10.0.r101.ge9a440e
pkgrel=2
_commit=e9a440e59501637b2acc3def712afe41ff6364ad
pkgdesc="A C program reducer (mingw-w64)"
url='https://github.com/csmith-project/creduce'
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32')
license=('spdx:NCSA')
depends=('perl-Benchmark-Timer'
         'perl-Exporter-Lite'
         'perl-File-Which'
         'perl-Getopt-Tabular'
         'perl-Regexp-Common'
         "${MINGW_PACKAGE_PREFIX}-astyle"
         "${MINGW_PACKAGE_PREFIX}-indent"
         "${MINGW_PACKAGE_PREFIX}-clang-libs")
makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
             "${MINGW_PACKAGE_PREFIX}-autotools"
             "${MINGW_PACKAGE_PREFIX}-clang"
             "git")
source=(${_realname}::git+https://github.com/csmith-project/creduce#commit=${_commit}
        "llvm-config-cygpath"
        "001-port-to-llvm-17.patch")
sha256sums=('SKIP'
            '03a7239d1e26d8a5dd5f405e10826679725cae6c01a9c37e80c6f1c184dad0a9'
            '2f619fce091e25cf5e5f1eb1b62ac1d9b0653c9e820d8aeab241635c04f87493')

pkgver() {
  cd "${srcdir}/${_realname}"
  git describe --long ${_commit} | sed 's/creduce-//g;s/\([^-]*-g\)/r\1/;s/-/./g;s/^v//g'
}

prepare() {
  cd "${srcdir}"/${_realname}

  # https://github.com/csmith-project/creduce/pull/264
  git apply "${srcdir}"/001-port-to-llvm-17.patch

  [[ -d "${srcdir}"/tools ]] && rm -rf "${srcdir}"tools
  mkdir -p "${srcdir}"/tools
  cp -f "${srcdir}"/llvm-config-cygpath "${srcdir}"/tools/llvm-config
}

build() {
  mkdir -p build-${MSYSTEM} && cd build-${MSYSTEM}

  PATH="${srcdir}/tools:$PATH" \
  ../${_realname}/configure \
      --prefix=${MINGW_PREFIX} \
      --build=${MINGW_CHOST} \
      --host=${MINGW_CHOST}

  make
}

package() {
  cd "${srcdir}/build-${MSYSTEM}"
  make DESTDIR="${pkgdir}" install

  install -Dm644 "../${_realname}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING"

  # Point creduce perl script:
  # #!/${MINGW_PREFIX} -> #!/usr
  # ..  to msys2 perl.
  sed "s|#!${MINGW_PREFIX}|#!/usr|g" \
    -i ${pkgdir}${MINGW_PREFIX}/bin/creduce
}
