# Maintainer: Felix Xing (Felixaszx) <felixaszx@outlook.com>

_realname=dxvk
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=2.7.1
pkgrel=1
pkgdesc="Vulkan-based implementation of D3D8, 9, 10 and 11 for Linux / Wine and Windows (mingw-w64)"
arch=('any')
mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64')
url="https://github.com/doitsujin/dxvk"
license=('spdx:Zlib')
depends=()
makedepends=(git
             "${MINGW_PACKAGE_PREFIX}-cc"
             "${MINGW_PACKAGE_PREFIX}-meson"
             "${MINGW_PACKAGE_PREFIX}-ninja"
             "${MINGW_PACKAGE_PREFIX}-glslang"
             "${MINGW_PACKAGE_PREFIX}-spirv-headers"
             "${MINGW_PACKAGE_PREFIX}-vulkan-headers"
)
optdepends=("${MINGW_PACKAGE_PREFIX}-vulkan-loader: use MSYS2 Vulkan loader when possible")

_libdisplay_info_name=libdisplay-info
_libdisplay_info_commit=275e6459c7ab1ddd4b125f28d0440716e4888078
source=("https://github.com/doitsujin/dxvk/archive/refs/tags/v$pkgver.tar.gz"
        "${_libdisplay_info_name}"::"git+https://github.com/doitsujin/${_libdisplay_info_name}.git#commit=${_libdisplay_info_commit}"
)
sha256sums=('4966be884da4a1ded7e38ee018caef5626bd06bbd0853715084b1a1644aaaf02'
            'e341e1f897220f586c95e1843059031633d780ea08800eea023ce3282730dfe7')

prepare() {
    mv ${_libdisplay_info_name} "${_realname}-${pkgver}"/subprojects
}

build() {
  local -a _meson_options=(
  --prefix=${MINGW_PREFIX}
  --buildtype=release
  --backend=ninja
  -Dbuild_id=true
  )

  MSYS2_ARG_CONV_EXCL="--prefix=" \
  PROCESSOR_ARCHITECTURE="${CARCH}" \
  ${MINGW_PREFIX}/bin/meson setup \
  -Dc_args="${CFLAGS}" \
  -Dcpp_args="${CXXFLAGS}" \
  "${_meson_options[@]}" \
  "build-${MSYSTEM}" \
  "${_realname}-${pkgver}"

  ${MINGW_PREFIX}/bin/meson compile -C "build-${MSYSTEM}"
}

package() {
  ${MINGW_PREFIX}/bin/meson install --skip-subprojects --destdir "${pkgdir}" \
  -C "build-${MSYSTEM}"

  install -d "${pkgdir}"${MINGW_PREFIX}/share/licenses/${_realname}
  install -d "${pkgdir}"${MINGW_PREFIX}/share/licenses/${_libdisplay_info_name}

  cp -r "${srcdir}"/${_realname}-${pkgver}/LICENSE "${pkgdir}"${MINGW_PREFIX}/share/licenses/${_realname}
  cp -r "${srcdir}"/${_realname}-${pkgver}/subprojects/${_libdisplay_info_name}/LICENSE \
  "${pkgdir}"${MINGW_PREFIX}/share/licenses/${_libdisplay_info_name}
}
