# Maintainer: Biswapriyo Nath <nathbappai@gmail.com>
# Contributor: dragon-archer <dragon-archer@outlook.com>

_realname=fastfetch
pkgbase="mingw-w64-${_realname}"
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=2.65.1
pkgrel=1
pkgdesc="An actively maintained, feature-rich and performance oriented, neofetch like system information tool (mingw-w64)"
arch=('any')
mingw_arch=('ucrt64' 'clang64' 'clangarm64')
url="https://github.com/fastfetch-cli/fastfetch"
msys2_repository_url='https://github.com/fastfetch-cli/fastfetch'
msys2_changelog_url='https://github.com/fastfetch-cli/fastfetch/blob/dev/CHANGELOG.md'
msys2_references=(
  'anitya: 279670'
  'archlinux: fastfetch'
  'aur: fastfetch-git'
  'gentoo: app-misc/fastfetch'
)
license=('spdx:MIT')
makedepends=(
  "${MINGW_PACKAGE_PREFIX}-cc"
  "${MINGW_PACKAGE_PREFIX}-chafa"
  "${MINGW_PACKAGE_PREFIX}-cmake"
  "${MINGW_PACKAGE_PREFIX}-directx-headers"
  "${MINGW_PACKAGE_PREFIX}-imagemagick"
  "${MINGW_PACKAGE_PREFIX}-ninja"
  "${MINGW_PACKAGE_PREFIX}-pkgconf"
  "${MINGW_PACKAGE_PREFIX}-vulkan-loader"
  "${MINGW_PACKAGE_PREFIX}-vulkan-headers"
  "${MINGW_PACKAGE_PREFIX}-opencl-icd"
  "${MINGW_PACKAGE_PREFIX}-opencl-headers"
  "${MINGW_PACKAGE_PREFIX}-python"
)
# WinRT support is broken for GCC, reenable after
# https://github.com/fastfetch-cli/fastfetch/issues/2341 is resolved.
if [[ ${CC} != gcc ]]; then
  makedepends+=("${MINGW_PACKAGE_PREFIX}-cppwinrt")
fi
optdepends=(
  "${MINGW_PACKAGE_PREFIX}-vulkan-loader: For Vulkan detection support"
  "${MINGW_PACKAGE_PREFIX}-opencl-icd: For OpenCL detection support"
  "${MINGW_PACKAGE_PREFIX}-chafa: For chafa image protocol support"
  "${MINGW_PACKAGE_PREFIX}-imagemagick: For sixel image protocol support"
)
source=("${url}/archive/${pkgver}/${_realname}-${pkgver}.tar.gz")
noextract=("${_realname}-${pkgver}.tar.gz")
sha256sums=('c4a9d191601bae302cfa9939f2b5666d2565e83229840cd00554c4913646f0ad')

prepare() {
  # Workaround for symlinks in archive, see <https://www.msys2.org/docs/symlinks/>.
  bsdtar -xzf "${srcdir}/${_realname}-${pkgver}.tar.gz" 2>/dev/null || bsdtar -xzf "${srcdir}/${_realname}-${pkgver}.tar.gz"
}

build() {
  declare -a extra_config
  if check_option "debug" "n"; then
    extra_config+=("-DCMAKE_BUILD_TYPE=Release")
  else
    extra_config+=("-DCMAKE_BUILD_TYPE=Debug")
  fi

  MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=;-DCMAKE_INSTALL_SYSCONFDIR=" \
    cmake \
      -GNinja \
      -DCMAKE_INSTALL_PREFIX="${MINGW_PREFIX}" \
      "${extra_config[@]}" \
      -DCMAKE_INSTALL_SYSCONFDIR=${MINGW_PREFIX}/etc \
      -DPython_EXECUTABLE=${MINGW_PREFIX}/bin/python \
      -S ${_realname}-${pkgver} \
      -B build-${MSYSTEM}

  cmake --build build-${MSYSTEM}
}

check() {
  cmake -DBUILD_TESTS=ON -S ${_realname}-${pkgver} -B build-${MSYSTEM}
  cmake --build build-${MSYSTEM}
  ctest --test-dir build-${MSYSTEM} --output-on-failure
}

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

  install -Dm644 "${srcdir}"/${_realname}-${pkgver}/LICENSE "${pkgdir}"${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE
}
