# Maintainer: Alexey Pavlov <alexpux@gmail.com>

_realname=waf
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=2.0.20
pkgrel=1
pkgdesc="General-purpose build system modelled after Scons (mingw-w64)"
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32')
license=('BSD')
url="https://waf.io/"
makedepends=("setconf")
depends=("${MINGW_PACKAGE_PREFIX}-python")
options=('!emptydirs')
source=("https://waf.io/${_realname}-${pkgver}.tar.bz2"{,.asc})
validpgpkeys=('8AF22DE5A06822E3474F3C7049B4C67C05277AAA')
sha256sums=('cce635c2d1a0f93b4f5b811e0452a35b8066e8ccd78632447f5be24c4c3f1a63'
            'SKIP')

prepare() {
  cd "${srcdir}/${_realname}-${pkgver}"
  # Extracting license
  head -n 30 waf-light | tail -n 25 > LICENSE
  # Python 3 fix
  sed -i '0,/env python/s//python/' waf-light
}

build() {
  cd "${srcdir}/${_realname}-${pkgver}"
  plain "Configure ..."
  ${MINGW_PREFIX}/bin/python ./waf-light configure --prefix=${MINGW_PREFIX}
  plain "Make waf ..."
  ${MINGW_PREFIX}/bin/python ./waf-light --make-waf
}

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

  ${MINGW_PREFIX}/bin/python ./waf-light install -f --destdir="${pkgdir}" \
    --tools='compat,compat15,ocaml,go,cython,scala,erlang,cuda,gcj,boost,pep8,eclipse,unity,clang_compilation_database'

  install -Dm755 waf "${pkgdir}${MINGW_PREFIX}/bin/waf"

  # Force the generation of .waf.admin files
  cd demos/c
  "${pkgdir}${MINGW_PREFIX}/bin/waf" configure build >& /dev/null
  cd ../..

  # Fix weird directory placement (FS#38216, FS#38300)
  mkdir -p "${pkgdir}${MINGW_PREFIX}/lib/waf"
  mv "${pkgdir}${MINGW_PREFIX}/bin/.waf3-${pkgver}-"* "${pkgdir}${MINGW_PREFIX}/lib/waf/"
  setconf "${pkgdir}${MINGW_PREFIX}/bin/waf" base '"${MINGW_PREFIX}/lib/waf"'

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

}
