# Maintainer: Mateusz Mikula <mati865@gmail.com>

_realname=headers
_mingw_suff=mingw-w64-cross-clang
pkgname=("${_mingw_suff}-${_realname}")
conflicts=("${_mingw_suff%-*}-${_realname}")
pkgdesc="MinGW-w64 headers for cross-compiler"
pkgver=12.0.0.r657.g1e8b1ccdd
pkgrel=1
arch=('i686' 'x86_64')
url="https://mingw-w64.sourceforge.io/"
msys2_repository_url="https://sourceforge.net/p/mingw-w64/mingw-w64/ci/master/tree/mingw-w64-headers/"
license=('spdx:ZPL-2.1 AND LGPL-2.1-or-later')
groups=("${_mingw_suff}-toolchain")
makedepends=('git' 'autotools' 'gcc')
options=('!strip' '!libtool' '!emptydirs' '!buildflags')
_commit='1e8b1ccdd415de4c67be53e803521279a4d8abc1'
source=("mingw-w64"::"git+https://git.code.sf.net/p/mingw-w64/mingw-w64#commit=$_commit")
sha256sums=('8bbb1846c7004ab501815e6f9178ffdc9ad26044e5cc56a63abc4f5344f0785c')
msys2_references=(
  'archlinux: mingw-w64-headers'
  'cpe: cpe:/a:mingw-w64:mingw-w64'
)

_targets="i686-w64-mingw32 x86_64-w64-mingw32 armv7-w64-mingw32 aarch64-w64-mingw32"

pkgver() {
  cd "${srcdir}/mingw-w64"
  git describe --long ${_commit} | sed 's/\([^-]*-g\)/r\1/;s/-/./g;s/^v//g'
}

prepare() {
  cd "${srcdir}/mingw-w64"
}

build() {
  for _target in ${_targets}; do
    msg "Configuring ${_target} headers"
    mkdir -p ${srcdir}/headers-${_target} && cd ${srcdir}/headers-${_target}

    local _default_win32_winnt
    case "${_target%%-*}" in
      i686|x86_64)
        _default_win32_winnt=0x601
        ;;
      *)
        # assume any new arches added will be at least Win10
        _default_win32_winnt=0xA00
        ;;
    esac

    ${srcdir}/mingw-w64/mingw-w64-headers/configure \
    --build=${CHOST} \
    --host=${_target} \
    --prefix=/opt/${_target} \
    --enable-sdk=all \
    --with-default-win32-winnt=${_default_win32_winnt} \
    --with-default-msvcrt=ucrt
  done
}

package() {
  for _target in ${_targets}; do
    msg "Installing ${_target} headers"
    cd ${srcdir}/headers-${_target}
    make DESTDIR=${pkgdir} install
  done
}
