# Maintainer: David Grayson <davidegrayson@gmail.com>

_realname=avrdude
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=7.3
pkgrel=1
pkgdesc='Software for programming Atmel AVR Microcontrollers (mingw-w64)'
arch=('any')
mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64')
url="https://www.nongnu.org/avrdude/"
license=('spdx:GPL-2.0-or-later')
makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
             "${MINGW_PACKAGE_PREFIX}-cmake")
depends=("${MINGW_PACKAGE_PREFIX}-hidapi"
         "${MINGW_PACKAGE_PREFIX}-libelf"
         "${MINGW_PACKAGE_PREFIX}-libftdi"
         "${MINGW_PACKAGE_PREFIX}-libserialport"
         "${MINGW_PACKAGE_PREFIX}-libusb"
         "${MINGW_PACKAGE_PREFIX}-libusb-compat-git"
         "${MINGW_PACKAGE_PREFIX}-ncurses"
         "${MINGW_PACKAGE_PREFIX}-readline")
options=('staticlibs' 'strip')
source=("https://github.com/avrdudes/avrdude/archive/refs/tags/v${pkgver}.zip"
        '0001-Remove-static-flag.patch')
sha256sums=('1a0ad78f3aa0935cf411952d92357fc67a43a780c07a6a2d22b620ca0f60e7ab'
            '917dd4e89863b3db42a00b1ebbbe14527a80eba7712baf9eb7cae230bea8a74a')
validpgpkeys=('EF497ABE47ED91B3FC3D7EA54D902FF7723BDEE9'
              '5E84F980C3CAFD4BB5841070F48CA81B69A85873'
              '56628323218C669FF578705C7E9EADC3030D34EB')

apply_patch_with_msg() {
  for _patch in "$@"
  do
    msg2 "Applying ${_patch}"
    patch -Nbp1 -i "${srcdir}/${_patch}"
  done
}

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

  apply_patch_with_msg 0001-Remove-static-flag.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

  mkdir -p "${srcdir}"/build-${MSYSTEM} && cd "${srcdir}"/build-${MSYSTEM}

  MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
  ${MINGW_PREFIX}/bin/cmake \
    -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
    -DCMAKE_C_FLAGS_INIT="-I${MINGW_PREFIX}/include/libusb-compat" \
    -DUSE_STATIC_LIBS=OFF \
    "${_extra_config[@]}" \
    ../${_realname}-${pkgver}

  ${MINGW_PREFIX}/bin/cmake --build .
}

package() {
  cd "${srcdir}/build-${MSYSTEM}"
  DESTDIR=${pkgdir} ${MINGW_PREFIX}/bin/cmake --install .
}
