# Maintainer of AUR version: Patrick Northon <northon_patrick3@yahoo.ca>

_pkgname=vulkan-icd-loader
pkgname=mingw-w64-clang-aarch64-${_pkgname}
_dirname=Vulkan-Loader
pkgver=1.4.328.1
pkgrel=1
pkgdesc='Vulkan Installable Client Driver (ICD) Loader (mingw-w64-clang-aarch64)'
arch=(any)
url="https://www.vulkan.org/"
groups=('mingw-w64-clang-aarch64-vulkan-devel')
license=('Apache-2.0')
makedepends=(mingw-w64-clang-aarch64-cmake mingw-w64-clang-aarch64-vulkan-headers python-lxml ninja git)
depends=(mingw-w64-clang-aarch64-crt)
options=(!buildflags staticlibs !strip)
source=("git+https://github.com/KhronosGroup/Vulkan-Loader#tag=vulkan-sdk-$pkgver")
b2sums=('eb0f78c3c804e54985a21bbdcfd052899677adcd466fcf1c5000e3e00c8dff8bcfbc3968b57d9ac0a8acc066dee3208fbfa21a5e521339277179e7f54450c197')

_srcdir="${_dirname}"
_architectures='aarch64-w64-mingw32'
_flags=(
  -Wno-dev
  -DCMAKE_BUILD_TYPE=Release
  -DCMAKE_C_FLAGS_RELEASE='-DNDEBUG'
  -DUSE_MASM=OFF
  -DBUILD_WERROR=OFF
)

prepare() {
  cd "${_srcdir}"

  sed -i 's|${CMAKE_CURRENT_SOURCE_DIR}/vulkan-1.def||' 'loader/CMakeLists.txt'
  if ! [[ $pkgname =~ .*-clang-.* ]]; then
    sed -i 's/__attribute__((visibility("default")))/__declspec(dllexport)/' 'loader/vk_loader_platform.h'
  fi
}

build() {
  for _arch in ${_architectures}; do
    source mingw-clang-env $_arch
    #${_arch}-cmake -S "${_srcdir}" -B "build-${_arch}-static" "${_flags[@]}" -DBUILD_TESTS=OFF \
    #  -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX="/usr/${_arch}/static"
    #cmake --build "build-${_arch}-static"

    ${_arch}-cmake -G Ninja -S "${_srcdir}" -B "build-${_arch}" "${_flags[@]}" -DBUILD_TESTS=OFF
    cmake --build "build-${_arch}"
  done
}

package() {
  for _arch in ${_architectures}; do
    source mingw-clang-env $_arch
    #DESTDIR="${pkgdir}" cmake --install "build-${_arch}-static"
    #$STRIP -g "$pkgdir/usr/${_arch}/static/lib/"*.a

    DESTDIR="${pkgdir}" cmake --install "build-${_arch}"
    $STRIP --strip-unneeded "${pkgdir}/usr/${_arch}/bin/"*.dll
    $STRIP -g "${pkgdir}/usr/${_arch}/lib/"*.a
  done
}
