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

_realname=ncurses
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=6.3
pkgrel=5
pkgdesc="System V Release 4.0 curses emulation library (mingw-w64)"
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32' 'clangarm64')
depends=("${MINGW_PACKAGE_PREFIX}-libsystre")
makedepends=("${MINGW_PACKAGE_PREFIX}-cc" "${MINGW_PACKAGE_PREFIX}-autotools")
url="https://www.gnu.org/software/ncurses/"
license=('MIT')
options=('staticlibs' 'strip')
source=(https://ftp.gnu.org/pub/gnu/ncurses/ncurses-${pkgver}.tar.gz{,.sig}
        001-use-libsystre.patch
        002-ncurses-config-win-paths.patch
        ncurses-6.3-cflags-private.patch
        ncurses-6.3-pkgconfig.patch)
sha256sums=('97fc51ac2b085d4cde31ef4d2c3122c21abc217e9090a43a30fc5ec21684e059'
            'SKIP'
            'd8fb37262372f3e5c9a553bdeff07c8b874bac6f3c416e2a372877cef0af1925'
            '5367d8f49aff92884b9daa014502df13e1812f1b7ee1b3a3cb18139f10039408'
            '3107029dfb807e338d34641d78329cd6725c58e6b873352621f4b9611a8380bf'
            'b8544a607dfbeffaba2b087f03b57ed1fa81286afca25df65f61b04b5f3b3738')
validpgpkeys=('19882D92DDA4C400C22C0D56CC2AF4472167BE03')

prepare() {
  cd ${_realname}-${pkgver}
  patch -p1 -i ${srcdir}/001-use-libsystre.patch
  patch -p1 -i ${srcdir}/002-ncurses-config-win-paths.patch

  # do not leak build-time LDFLAGS into the pkgconfig files:
  # https://bugs.archlinux.org/task/68523
  patch -p1 -i ${srcdir}/ncurses-6.3-pkgconfig.patch

  patch -p1 -i ${srcdir}/ncurses-6.3-cflags-private.patch
}

build() {
  [[ -d build-${MSYSTEM} ]] && rm -rf build-${MSYSTEM}
  mkdir -p build-${MSYSTEM} && cd build-${MSYSTEM}

  # It passes X_OK to access() on Windows which isn't supported with ucrt
  CFLAGS+=" -D__USE_MINGW_ACCESS"
  # nanosleep is only defined in pthread library
  export cf_cv_func_nanosleep=no

  ../${_realname}-${pkgver}/configure \
    --prefix=${MINGW_PREFIX} \
    --mandir=${MINGW_PREFIX}/share/man \
    --build=${MINGW_CHOST} \
    --host=${MINGW_CHOST} \
    --target=${MINGW_CHOST} \
    --without-ada \
    --with-cxx \
    --with-shared \
    --without-pthread \
    --disable-rpath \
    --enable-colorfgbg \
    --enable-ext-colors \
    --enable-ext-mouse \
    --disable-symlinks \
    --enable-warnings \
    --enable-assertions \
    --disable-home-terminfo \
    --enable-database \
    --enable-sp-funcs \
    --enable-term-driver \
    --enable-interop \
    --enable-widec \
    --enable-pc-files \
    --with-pkg-config-libdir=${MINGW_PREFIX}/lib/pkgconfig

  make
}

package() {
  cd ${srcdir}/build-${MSYSTEM}
  make DESTDIR=${pkgdir} install
  cp -r ${pkgdir}${MINGW_PREFIX}/include/ncursesw ${pkgdir}${MINGW_PREFIX}/include/ncurses
  cp ${pkgdir}${MINGW_PREFIX}/lib/libncursesw.a ${pkgdir}${MINGW_PREFIX}/lib/libncurses.a
}
