# Maintainer: David Macek <david.macek.0@gmail.com>

# TODO: include more stuff from tools/?

_realname=nim
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=1.4.6
_csourcesver=0.20.0
pkgrel=1
pkgdesc='Imperative, multi-paradigm, compiled programming language (mingw-w64)'
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32')
url='https://nim-lang.org/'
license=('MIT')
makedepends=('git')
options=(!emptydirs)
source=("${_realname}-${pkgver}.tar.gz"::https://github.com/nim-lang/Nim/archive/v${pkgver}.tar.gz
        "${_realname}-csources-${_csourcesver}.tar.gz"::https://github.com/nim-lang/csources/archive/v${_csourcesver}.tar.gz
        "0001-Use-unixy-filenames-even-on-Windows.patch"
        "0002-Fix-config-path.patch"
        "0003-Fix-library-path.patch"
        "0004-Fix-nimrtl-dll-name.patch"
        "0005-Fix-pcre-dll-name.patch"
        "0006-Fix-sqlite3-dll-name.patch")
sha256sums=('f041b63cbd7a5018a2a60f27aa3d2ea6f13890c1a2d8d79197a3b2fecb2614b1'
            '5e6fd15d90df1a8cb7614c4ffc70aa8c4198cd854d7742016202b96dd0228d3c'
            '3010acbe7769ea214dd51f5889e3a26b44925001905deb04b060beaede2578f4'
            'e4616080589f8140dbf4e4dc8afff1dddd95c93af51e2754bd84606cee415386'
            'e66e869c7f39a0fa5fa98512ae1d2a02befface3ff2d4d36abc2b63616e24039'
            '9d3efcc253986708cac461c8bd691b0edf660f63be5d77b85253402899ef784f'
            'fa475808c100a86174ae348faaa4048d09e56406cb54c2f795da9d733605b003'
            '008a090cf561124796daaab8390f495bc740a4ec8936eb96bc025cee6e017e3d')

prepare() {
  cd "${srcdir}"

  rm -rf "${_realname}-${pkgver}/build"
  cp -R "csources-${_csourcesver}" "${_realname}-${pkgver}/build"

  cd "${_realname}-${pkgver}"
  patch -p1 -i "${srcdir}/0001-Use-unixy-filenames-even-on-Windows.patch"
  patch -p1 -i "${srcdir}/0002-Fix-config-path.patch"
  patch -p1 -i "${srcdir}/0003-Fix-library-path.patch"
  patch -p1 -i "${srcdir}/0004-Fix-nimrtl-dll-name.patch"
  patch -p1 -i "${srcdir}/0005-Fix-pcre-dll-name.patch"
  patch -p1 -i "${srcdir}/0006-Fix-sqlite3-dll-name.patch"
}

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

  msg2 "Building nim"
  pushd build
  sh build.sh --cpu ${MINGW_CHOST}
  popd

  msg2 "Building koch"
  ./bin/nim c -d:release koch
  ./koch boot -d:release -d:useGnuReadline

  export PATH="${srcdir}/${_realname}-${pkgver}/bin:$PATH"

  msg2 "Building libs"
  pushd lib
  nim c --app:lib -d:createNimRtl -d:release nimrtl.nim
  popd

  msg2 "Building tools"
  pushd tools
  nim c -d:release nimgrep.nim
  popd

  msg2 "Building nimsuggest"
  nim c -d:release nimsuggest/nimsuggest.nim
}

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

  export PATH="${srcdir}/${_realname}-${pkgver}/bin:$PATH"

  ./koch install "${pkgdir}"

  mkdir -p "${pkgdir}${MINGW_PREFIX}/lib"
  cp -a lib "${pkgdir}${MINGW_PREFIX}/lib/nim"
  cp -a compiler "${pkgdir}${MINGW_PREFIX}/lib/nim"

  cp "compiler.nimble" "${pkgdir}${MINGW_PREFIX}/lib/nim/compiler"

  mkdir -p "${pkgdir}${MINGW_PREFIX}/bin"
  cp "lib/libnimrtl.dll" "${pkgdir}${MINGW_PREFIX}/bin"

  install -Dm 644 config/* -t "${pkgdir}${MINGW_PREFIX}/etc/nim"
  install -Dm 755 bin/* tools/nimgrep nimsuggest/nimsuggest -t "${pkgdir}${MINGW_PREFIX}/bin"

  # Fix FS#50252, unusual placement of header files
  install -d "${pkgdir}${MINGW_PREFIX}/include"
  cp -a "${pkgdir}${MINGW_PREFIX}/lib/nim/"*.h "${pkgdir}${MINGW_PREFIX}/include"

  mkdir -p "${pkgdir}${MINGW_PREFIX}/share/nim/doc"
  cp -r "examples" "${pkgdir}${MINGW_PREFIX}/share/nim/doc/"
  cp -r "doc"/* "${pkgdir}${MINGW_PREFIX}/share/nim/doc/"
  mkdir -p "${pkgdir}${MINGW_PREFIX}/lib/nim/doc"
  cp doc/{basicopt.txt,advopt.txt} "${pkgdir}${MINGW_PREFIX}/lib/nim/doc/"

  mkdir -p "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}"
  cp "copying.txt" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE"

  # clean up after koch install
  rm -r "${pkgdir}/nim"
  rm -f ${pkgdir}${MINGW_PREFIX}/bin/*.txt
  rm -r ${pkgdir}${MINGW_PREFIX}/lib/nim/*.dll
  rm -r ${pkgdir}${MINGW_PREFIX}/lib/nim/compiler/*.exe
}
