# Maintainer: Storm Dragon <storm_dragon@stormux.org>

pkgname=cthulhu-git
_pkgname=cthulhu
pkgver=2026.05.06.r394.ga5f7c9a
pkgrel=1
pkgdesc="Desktop-agnostic screen reader with plugin system, forked from Orca"
url="https://git.stormux.org/storm/cthulhu"
arch=(any)
license=(LGPL)
provides=("${_pkgname}")
conflicts=("${_pkgname}")
depends=(
  # Core AT-SPI accessibility
  at-spi2-core
  gobject-introspection-runtime
  python-gobject
  python-cairo
  gtk3
  python-pywayland
  # Audio and speech
  speech-dispatcher
  gstreamer
  gst-plugins-base # playbin, audiotestsrc, basic decoders
  gst-plugins-good # pulsesink, more decoders

  # Braille support
  brltty
  liblouis

  # Plugin system and D-Bus remote control
  python-pluggy
  python-tomlkit
  python-dasbus
  
  # AI Assistant dependencies (for screenshots, HTTP requests, and actions)
  python-requests
  python-pyautogui
  
  # Desktop integration
  hicolor-icon-theme
  libwnck3
  pango
  
  # System utilities
  python
  python-setproctitle
  socat # for self-voicing feature
  xorg-xkbcomp
  xorg-xmodmap
)
optdepends=(
  'espeak-ng: Alternative TTS engine'
  'festival: Alternative TTS engine'
  'flite: Lightweight TTS engine'
  'espeak: Legacy TTS engine'

  # AI Assistant providers (optional)
  'claude-code: Claude AI provider support'
  'openai-codex: ChatGPT AI provider support'
  'gemini-cli: Gemini AI provider support'
  'ollama: Local AI model support'

  # OCR plugin dependencies (optional)
  'python-pillow: Image processing for OCR and AI Assistant'
  'python-pytesseract: Python wrapper for Tesseract OCR engine'
  'python-pdf2image: PDF to image conversion for OCR'
  'python-scipy: Scientific computing for OCR color analysis'
  'python-webcolors: Color name lookup for OCR text decoration'
  'tesseract: OCR engine for text recognition'
  'tesseract-data-eng: English language data for Tesseract'

  # nvda2cthulhu plugin (optional)
  'python-msgpack: Msgpack decoding for nvda2cthulhu'
  'python-tornado: WebSocket server for nvda2cthulhu'

  # Window Title Reader plugin (optional)
  'python-xlib: X11 access for Wine window title plugin'
)
makedepends=(
  git
  meson
  ninja
  python-build
  python-installer
  python-wheel
)
install=cthulhu.install
source=(
  "${_pkgname}::git+https://git.stormux.org/storm/${_pkgname}.git#branch=master"
  "cthulhu.install"
)
b2sums=(
  'SKIP'
  'SKIP'
)

pkgver() {
  cd "${_pkgname}"
  local projectVersion revisionCount commitHash

  projectVersion=$(sed -n "s/^[[:space:]]*version: '\([^']*\)'.*/\1/p" meson.build)
  projectVersion=${projectVersion%-master}
  projectVersion=${projectVersion//-/.}
  [[ -n "${projectVersion}" ]] || return 1

  revisionCount=$(git rev-list --count HEAD)
  commitHash=$(git rev-parse --short=7 HEAD)
  printf "%s.r%s.g%s\n" "${projectVersion}" "${revisionCount}" "${commitHash}"
}

build() {
  cd "${_pkgname}"
  arch-meson _build
  meson compile -C _build
}

package() {
  cd "${_pkgname}"
  meson install -C _build --destdir "$pkgdir"

  # Remove icon cache - it will be generated by post-install hooks
  rm -f "$pkgdir/usr/share/icons/hicolor/icon-theme.cache"
}

# vim:set sw=2 sts=-1 et:
