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

_realname=intel-xed
pkgbase=mingw-w64-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}")
pkgver=2023.12.19
_mbuild_ver=2022.07.28
pkgrel=3
pkgdesc="Intel X86 Encoder Decoder (mingw-w64)"
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32')
license=('Apache 2.0')
url="https://github.com/intelxed/xed/"
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs")
makedepends=("${MINGW_PACKAGE_PREFIX}-clang"
             "${MINGW_PACKAGE_PREFIX}-cc"
             "${MINGW_PACKAGE_PREFIX}-yasm"
             "${MINGW_PACKAGE_PREFIX}-python-setuptools")
source=("${_realname}-${pkgver}.tar.gz"::"https://github.com/intelxed/xed/archive/refs/tags/v${pkgver}.tar.gz"
        "mbuild-${_mbuild_ver}.tar.gz"::"https://github.com/intelxed/mbuild/archive/refs/tags/v${_mbuild_ver}.tar.gz"
        001-mbuild-shared.patch
        002-xed-build.patch
        003-mbuild-remove-m64.patch
        XEDConfig.cmake
        XEDConfigVersion.cmake
        XEDTargets.cmake
        XEDTargets-release.cmake)
sha256sums=('1ddfc40f1f931980ee31a51121af9f82f0d4f3a7075318c1208c2b7a3a09bf0f'
            'd3a2a514cec936036fd203a3ecdb8b60e07fc6ee20670edeb0bc14b1f9a9a51d'
            '11b4bb8e5639cc98c43d008446166e2d117037aa43dfe8559c955281ea0c1637'
            '5c7ee1376b936d52593321001ef5ccb28bff84f4dcd7f7f57d86d4cd91f59217'
            '994db2654d484c7da80075a01743d45c7e79c7800ae4be8bff2e481b0ce6baf7'
            '5ce572ebc6acabe4f18affc9dbdbd045dd81e4af6b99ac9bbdbe4b5bb0113ab0'
            '5b67da254e4a1c7b2a05d0d2eeb60d8f9767f0179326e2c6f6c59f850ab28dc3'
            '9ccd6f8b79e51f9c9318969af3464466fe5060e7ab06cb37993228cb7d69a090'
            '560c662524317214e80575279f09fff05612e389345ee294c21539c3fade4068')

prepare() {
  cd "${srcdir}"
  mv mbuild-${_mbuild_ver} mbuild
  cd mbuild
  patch -p1 -i ${srcdir}/001-mbuild-shared.patch
  patch -p1 -i ${srcdir}/003-mbuild-remove-m64.patch

  cd "${srcdir}/xed-${pkgver}"
  patch -p1 -i ${srcdir}/002-xed-build.patch
}

build() {
  cd "${srcdir}/xed-${pkgver}"
  
  ${MINGW_PREFIX}/bin/python.exe ./mfile.py --shared --opt=2 --compiler=clang
}

package() {
  cd "${srcdir}"/xed-${pkgver}
  ${MINGW_PREFIX}/bin/python.exe ./mfile.py --shared --opt=2 --compiler=clang --prefix=${pkgdir}${MINGW_PREFIX} install
  
  mkdir -p ${pkgdir}${MINGW_PREFIX}/bin
  mv ${pkgdir}${MINGW_PREFIX}/lib/*.dll ${pkgdir}${MINGW_PREFIX}/bin/
  
  cp -f ${srcdir}/xed-${pkgver}/*.dll.a ${pkgdir}${MINGW_PREFIX}/lib/
  
  # License
  install -Dm644 "${srcdir}/xed-${pkgver}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE"
  
  install -Dm644 "${srcdir}/XEDConfig.cmake" "${pkgdir}${MINGW_PREFIX}/lib/cmake/xed/XEDConfig.cmake"
  install -Dm644 "${srcdir}/XEDConfigVersion.cmake" "${pkgdir}${MINGW_PREFIX}/lib/cmake/xed/XEDConfigVersion.cmake"
  install -Dm644 "${srcdir}/XEDTargets.cmake" "${pkgdir}${MINGW_PREFIX}/lib/cmake/xed/XEDTargets.cmake"
  install -Dm644 "${srcdir}/XEDTargets-release.cmake" "${pkgdir}${MINGW_PREFIX}/lib/cmake/xed/XEDTargets-release.cmake"
  
  sed -i "s#@XED_VERSION@#${pkgver}#g" "${pkgdir}${MINGW_PREFIX}"/lib/cmake/xed/XEDConfig.cmake
  
  case "${CARCH}" in
    x86_64|aarch64)
      sed -i "s#@@VOID_SIZE@@#8#g" "${pkgdir}${MINGW_PREFIX}"/lib/cmake/xed/XEDConfigVersion.cmake
      ;;
    armv7|i?86)
      sed -i "s#@@VOID_SIZE@@#4#g" "${pkgdir}${MINGW_PREFIX}"/lib/cmake/xed/XEDConfigVersion.cmake
      ;;
  esac
}
