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

_realname=fpm
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=0.11.0
pkgrel=1
_bootstrap_ver=0.8.2
arch=('any')
mingw_arch=('mingw64' 'ucrt64') # 'clang64' 'clangarm64')
pkgdesc="Fortran package manager (mingw-w64)"
url="https://github.com/fortran-lang/fpm"
license=('spdx:MIT')
depends=("${MINGW_PACKAGE_PREFIX}-gcc-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")
_bootstrap_src=${_realname}-${bootstrap}.F90
source=("${url}/releases/download/v${pkgver}/fpm-${pkgver}.zip"
        "${url}/releases/download/v${_bootstrap_ver}/fpm-${_bootstrap_ver}.F90"
        "001-fix-windows-CRLF.patch")
sha256sums=('f6c998c9afd39eb42c7e80a306cfbed5faa77eaa42eb4f75b93864c338db1795'
            '0c95309f365a40900108f3325e17e99a0456ce76046c37326349bf61b3df447a'
            'e942e9763668ad42d865c14c6b04e315fd8e722fb59aeb2ad0e8cf9f7b96fb5a')
noextract=(${_bootstrap_src})

prepare() {
  cd "${srcdir}/fpm-${pkgver}"
  patch -p1 -i "${srcdir}"/001-fix-windows-CRLF.patch
}

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
}
