# Maintainer: Jeroen Ooms <jeroen@berkeley.edu>
_realname=r
pkgbase=mingw-w64-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}")
pkgver=4.6.0
pkgrel=1
pkgdesc="Software environment for statistical computing (mingw-w64)"
arch=('any')
mingw_arch=('ucrt64' 'clang64' 'clangarm64')
url='https://www.r-project.org/'
license=('GPL-2.0-or-later')
makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
             "${MINGW_PACKAGE_PREFIX}-fc"
             "${MINGW_PACKAGE_PREFIX}-pkgconf"
             "unzip")
depends=("${MINGW_PACKAGE_PREFIX}-cc-libs"
         "${MINGW_PACKAGE_PREFIX}-bzip2"
         "${MINGW_PACKAGE_PREFIX}-cairo"
         "${MINGW_PACKAGE_PREFIX}-curl"
         "${MINGW_PACKAGE_PREFIX}-icu"
         "${MINGW_PACKAGE_PREFIX}-libdeflate"
         "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo"
         "${MINGW_PACKAGE_PREFIX}-libpng"
         "${MINGW_PACKAGE_PREFIX}-libtiff"
         "${MINGW_PACKAGE_PREFIX}-omp"
         "${MINGW_PACKAGE_PREFIX}-pcre2"
         "${MINGW_PACKAGE_PREFIX}-tk"
         "${MINGW_PACKAGE_PREFIX}-xz"
         "${MINGW_PACKAGE_PREFIX}-zlib"
         "winpty"
         "make")
source=("https://cran.r-project.org/src/base/R-4/R-${pkgver}.tar.gz"
        "clang20.diff"
        "wrapper.sh")
sha256sums=('b8dc9b4543660c7b596b87938df532394350360976527d344228ee0ed12e45ec'
            '119016a804498dc39bd003ce4e3ea9dc3b4afdbcce779a41711e2add6faa5900'
            '56ba617029fa3c214f59ffec2bab98e4592798ffb67dc9380373ae72a36673f1')
noextract=(R-${pkgver}.tar.gz)

prepare() {
  MSYS="winsymlinks:lnk" tar -xf "R-${pkgver}.tar.gz"
  cd ${srcdir}/R-${pkgver}
  patch -Np1 -i "${srcdir}"/clang20.diff
}

build() {
  cd ${srcdir}/R-${pkgver}/src/gnuwin32
  echo "WIN =" > MkRules.local
  if [[ ${MSYSTEM} == CLANG* ]]; then
    echo "USE_LLVM = 1" >> MkRules.local
  fi
  echo "MY_TCLTK=${MINGW_PREFIX}" >> ${srcdir}/R-${pkgver}/etc/Renviron.site
  make all
  make cairodevices
  make recommended

  # Smoke test
  ${srcdir}/R-${pkgver}/bin/R -e "library(stats);library(tcltk);sessionInfo()"
}

package() {
  mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/R
  cd ${srcdir}/R-${pkgver}/
  cp -Rf bin etc include library modules share doc ${pkgdir}${MINGW_PREFIX}/lib/R/
  rm -f ${pkgdir}${MINGW_PREFIX}/lib/R/*/*.in
  # NB: Renviron.site only understands Windows paths
  #echo "R_SHARE_DIR=${MINGW_PREFIX}/share/R/share" >> ${pkgdir}${MINGW_PREFIX}/lib/R/etc/Renviron.site
  #echo "R_DOC_DIR=${MINGW_PREFIX}/share/R/doc" >> ${pkgdir}${MINGW_PREFIX}/lib/R/etc/Renviron.site
  mkdir -p ${pkgdir}${MINGW_PREFIX}/bin
  cp ${srcdir}/wrapper.sh ${pkgdir}${MINGW_PREFIX}/bin/R
  cp ${srcdir}/wrapper.sh ${pkgdir}${MINGW_PREFIX}/bin/Rscript
  cp ${srcdir}/wrapper.sh ${pkgdir}${MINGW_PREFIX}/bin/Rgui
}
