# Contributor: Mehdi Chinoune <mehdi.chinoune@hotmail.com>

_realname=qt6-declarative
pkgbase=mingw-w64-${_realname}
pkgname=${MINGW_PACKAGE_PREFIX}-${_realname}
_qtver=6.1.1
pkgver=${_qtver/-/}
pkgrel=2
arch=(any)
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32')
url='https://www.qt.io'
license=(GPL3 LGPL3 FDL custom)
pkgdesc='Classes for QML and JavaScript languages (mingw-w64)'
depends=("${MINGW_PACKAGE_PREFIX}-qt6-base")
makedepends=("${MINGW_PACKAGE_PREFIX}-cmake"
             "${MINGW_PACKAGE_PREFIX}-ninja")
groups=(${MINGW_PACKAGE_PREFIX}-qt6)
_pkgfn="${_realname/6-/}-everywhere-src-${_qtver}"
source=("https://download.qt.io/official_releases/qt/${pkgver%.*}/$_qtver/submodules/$_pkgfn.tar.xz")
sha256sums=('805394307479ebca9899996af8357037c4f1ff8b783162ade0c5a05cea7ee2d2')

build() {
  cd ${srcdir}
  [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST}
  mkdir -p build-${MINGW_CHOST}
  cd build-${MINGW_CHOST}

  MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
  ${MINGW_PREFIX}/bin/cmake.exe \
    -GNinja \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
    ../${_pkgfn}

  # Hack for clang32 in CI
  if [[ -n "${CI}" && "${MSYSTEM}" == "CLANG32" ]]; then
    export CMAKE_BUILD_PARALLEL_LEVEL=1
  fi

  ${MINGW_PREFIX}/bin/cmake.exe --build ./
}

package() {
  DESTDIR=${pkgdir} cmake --install build-${MINGW_CHOST}

  install -d "$pkgdir${MINGW_PREFIX}"/share/licenses/${_realname}
  install -Dm644 $_pkgfn/LICENSE* -t "$pkgdir${MINGW_PREFIX}"/share/licenses/${_realname}
}
