# Maintainer: Sebastian Ehlert <awvwgk@disroot.org>

_realname=fpm
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=0.13.0
_bootstrap_ver=0.13.0
pkgrel=1
pkgdesc="Fortran package manager (mingw-w64)"
arch=('any')
mingw_arch=('mingw64' 'ucrt64') # 'clang64' 'clangarm64')
url="https://github.com/fortran-lang/fpm"
msys2_repository_url='https://github.com/fortran-lang/fpm'
msys2_references=(
  'aur: fortran-fpm'
)
license=('spdx:MIT')
depends=("${MINGW_PACKAGE_PREFIX}-cc-libs"
         "${MINGW_PACKAGE_PREFIX}-omp"
         $([[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]] || echo "${MINGW_PACKAGE_PREFIX}-gcc-libgfortran"))
makedepends=("${MINGW_PACKAGE_PREFIX}-fc"
             "git")
optdepends=("git: Support for fetching projects with git")
source=("${url}/releases/download/v${pkgver}/fpm-${pkgver}.zip"
        "${url}/releases/download/v${_bootstrap_ver}/fpm-${_bootstrap_ver}.F90"
        "001-fix-build-with-flang.patch")
sha256sums=('2c81b448efe9f6a93f4c3cfd7131a42249cd611121857f2bae15b8e2d69ff9a7'
            '001cff6cf1145f215baa0888ba27acc06cea30a89b79d1a8be97db3fffbc8cd2'
            '21e11c571a2b02c085728bc9b99004051a330ecbe1fd050249ffeee98f070598')

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

prepare() {
  apply_patch_with_msg 001-fix-build-with-flang.patch

  cd "${srcdir}"/${_realname}-${pkgver}
}

build() {
  cd "${srcdir}/${_realname}-${pkgver}"
  local _build="build-${MSYSTEM}"
  if [[ ${MINGW_PACKAGE_PREFIX} != *-clang-* ]]; then
    _fc="${MINGW_PREFIX}/bin/gfortran"
    _fflags="-g -O3 -fbacktrace -fopenmp"
  else
    _fc="${MINGW_PREFIX}/bin/flang"
    _fflags="-g -O3 -fopenmp"
  fi

  mkdir -p "${_build}/bootstrap"
  "${_fc}" -J "${_build}/bootstrap" -o "${_build}/bootstrap/fpm" "${srcdir}"/fpm-${_bootstrap_ver}.F90

  "${_build}/bootstrap/fpm" install \
    --compiler "${_fc}" \
    --flag "${_fflags}" \
    --prefix "${_build}"
}

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

  install -Dm755 build-${MSYSTEM}/bin/fpm "${pkgdir}"${MINGW_PREFIX}/bin/fpm

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