# Maintainer: Michael Hansen <zrax0111 gmail com>

_realname=capstone
pkgbase=mingw-w64-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-capstone"
         "${MINGW_PACKAGE_PREFIX}-python2-capstone"
         "${MINGW_PACKAGE_PREFIX}-python3-capstone")
_pkgver=4.0.1
pkgver=${_pkgver//-/}
pkgrel=1
pkgdesc='Lightweight multi-platform, multi-architecture disassembly framework'
url='https://www.capstone-engine.org/index.html'
arch=('any')
license=('BSD')
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs")
makedepends=("${MINGW_PACKAGE_PREFIX}-cmake"
             "${MINGW_PACKAGE_PREFIX}-python2-setuptools"
             "${MINGW_PACKAGE_PREFIX}-python3-setuptools")
source=("${_realname}-${_pkgver}.tar.gz::https://github.com/aquynh/capstone/archive/${_pkgver}.tar.gz"
        "mingw_python.patch")
sha512sums=('43c52024065b41b45eff9423341db3f3d5163fa7aa01b360faa30437786740c8f2c34c36faa04dced5308e09d8bd78df3bad0ab9c06f98612169edb176f83c36'
            'c86d1e9b14e848db1451a9f9422b3e6522b4a021f21a8bdd4b90d398f0e35423f019ec15ff7a0a6f8047c954e8651f57474112ce1afc8dc3f178221e51553e33')

prepare() {
  cd ${_realname}-${pkgver}
  patch -p1 -i "${srcdir}/mingw_python.patch"
}

build() {
  mkdir -p build-${MINGW_CHOST}
  cd build-${MINGW_CHOST}

  MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
  ${MINGW_PREFIX}/bin/cmake \
    -G"MSYS Makefiles" \
    -DCMAKE_INSTALL_PREFIX="${MINGW_PREFIX}" \
    -DCMAKE_BUILD_TYPE=Release \
    ../${_realname}-${_pkgver}

  make
}

package_capstone() {
  cd build-${MINGW_CHOST}

  make DESTDIR="${pkgdir}" install
  install -Dm644 "${srcdir}/${_realname}-${_pkgver}/docs/README" -t "${pkgdir}/${MINGW_PREFIX}/share/doc/${_realname}"
  install -Dm644 "${srcdir}/${_realname}-${_pkgver}/LICENSE.TXT" -t "${pkgdir}/${MINGW_PREFIX}/share/licenses/${_realname}"
}

package_mingw-w64-i686-capstone()   { package_capstone; }
package_mingw-w64-x86_64-capstone() { package_capstone; }

package_python2-capstone() {
  depends=("${MINGW_PACKAGE_PREFIX}-capstone" "${MINGW_PACKAGE_PREFIX}-python2")
  cd ${_realname}-${_pkgver}/bindings/python

  MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \
  LIBCAPSTONE_PATH="${srcdir}/build-${MINGW_CHOST}/libcapstone.dll" \
  python2 setup.py install -O1 --root="${pkgdir}" --prefix="${MINGW_PREFIX}"

  install -Dm644 "${srcdir}/${_realname}-${_pkgver}/LICENSE.TXT" -t "${pkgdir}/${MINGW_PREFIX}/share/licenses/python2-${_realname}"
}

package_mingw-w64-i686-python2-capstone()   { package_python2-capstone; }
package_mingw-w64-x86_64-python2-capstone() { package_python2-capstone; }

package_python3-capstone() {
  depends=("${MINGW_PACKAGE_PREFIX}-capstone" "${MINGW_PACKAGE_PREFIX}-python3")
  cd ${_realname}-${_pkgver}/bindings/python

  MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \
  LIBCAPSTONE_PATH="${srcdir}/build-${MINGW_CHOST}/libcapstone.dll" \
  python3 setup.py install -O1 --root="${pkgdir}" --prefix="${MINGW_PREFIX}"

  install -Dm644 "${srcdir}/${_realname}-${_pkgver}/LICENSE.TXT" -t "${pkgdir}/${MINGW_PREFIX}/share/licenses/python3-${_realname}"
}

package_mingw-w64-i686-python3-capstone()   { package_python3-capstone; }
package_mingw-w64-x86_64-python3-capstone() { package_python3-capstone; }
