# Maintainer: Marc-André Lureau <marcandre.lureau@redhat.com>

_realname=dtc
pkgbase="mingw-w64-${_realname}"
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=1.8.1
pkgrel=1
pkgdesc='Device Tree Compiler'
arch=('any')
mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64')
url='https://git.kernel.org/pub/scm/utils/dtc/dtc.git/'
msys2_repository_url='https://git.kernel.org/pub/scm/utils/dtc/dtc.git'
msys2_references=(
  'anitya: 16911'
  'cpe: cpe:2.3:a:dtc_project:dtc'
)
license=('spdx:GPL-2.0-or-later')
depends=("${MINGW_PACKAGE_PREFIX}-libyaml")
makedepends=(
  "${MINGW_PACKAGE_PREFIX}-cc"
  "${MINGW_PACKAGE_PREFIX}-meson"
  "${MINGW_PACKAGE_PREFIX}-meson-python"
  "${MINGW_PACKAGE_PREFIX}-ninja"
  "${MINGW_PACKAGE_PREFIX}-python"
  "${MINGW_PACKAGE_PREFIX}-python-build"
  "${MINGW_PACKAGE_PREFIX}-python-installer"
  "${MINGW_PACKAGE_PREFIX}-python-setuptools"
  "${MINGW_PACKAGE_PREFIX}-python-setuptools-scm"
  "${MINGW_PACKAGE_PREFIX}-swig"
)
options=('!strip')
source=(
  "https://git.kernel.org/pub/scm/utils/dtc/dtc.git/snapshot/${_realname}-${pkgver}.tar.gz"
  '001-remove-setup-py-install.patch'
  '002-legacy-swig.patch'
)
sha256sums=('74b50bb19134f6562490afea53e59953dd6c4afb17e5ccb60be32221262d3390'
            '0246aaace4ed0450c2f136515161bed62a7dc32e436a06fb99120497fae6b491'
            '96c1d1383927d841529babb06ef19588dfee995739df18c56d08f4ebc9eed4d3')

prepare() {
  cd "${_realname}-${pkgver}"

  # conflicts with the wheel build and uses deprecated setuptools install
  patch -Nbp1 -i "${srcdir}/001-remove-setup-py-install.patch"
  patch -Nbp1 -i "${srcdir}/002-legacy-swig.patch"
}

build() {
  export SETUPTOOLS_SCM_PRETEND_VERSION="${pkgver}"

  MSYS2_ARG_CONV_EXCL="--prefix=" \
  "${MINGW_PREFIX}/bin/meson" setup \
    --prefix="${MINGW_PREFIX}" \
    -Dtests=false \
    -Dtools=true \
    "build-${MSYSTEM}" \
    "${_realname}-${pkgver}"

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

  # tell meson-python backend to also skip tests during the wheel build
  LDFLAGS+=" -L$(cygpath -wm "${srcdir}/build-${MSYSTEM}/libfdt")" \
  python -m build --wheel --skip-dependency-check --no-isolation \
    -C setup-args="-Dtests=false" \
    "${_realname}-${pkgver}"
}

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

  MSYS2_ARG_CONV_EXCL="--prefix=" \
    python -m installer --prefix="${MINGW_PREFIX}" \
    --destdir="${pkgdir}" \
    "${_realname}-${pkgver}/dist/"*.whl

  cd "${srcdir}/${_realname}-${pkgver}"

  install -Dm644 GPL "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/GPL"
}
