# Maintainer: Tobi Lütke <tobi@lutke.com>

pkgname=omasnap
pkgver=1.21.0
pkgrel=1
pkgdesc="Native Wayland screenshot and annotation overlay for Hyprland"
arch=('x86_64' 'aarch64')
url="https://github.com/omacom/omasnap"
license=('MIT' 'OFL-1.1')
depends=(
  'hyprland'
  'layer-shell-qt'
  'qt6-base'
  'tesseract'
  'tesseract-data-eng'
  'wayland'
  'wl-clipboard'
)
makedepends=(
  'cmake'
  'ninja'
  'pkgconf'
  'wayland-protocols'
)
options=('!debug')

source=("$pkgname-$pkgver.tar.gz::$url/archive/refs/tags/v$pkgver.tar.gz")
sha256sums=('2f842edf67631825fa1e102876020040ea3e21341221a428b6aeee5580a9d928')

build() {
  cmake -S "$pkgname-$pkgver" -B build -G Ninja \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_INSTALL_PREFIX=/usr
  cmake --build build --parallel
}

check() {
  # The smoke suite fsyncs its working documents under /tmp. On the CI
  # droplets the build leaves about a gigabyte of dirty pages, and the
  # flush that starts a few seconds into the suite makes those fsyncs stall
  # long enough to overrun the suite's 5-second settle windows. Flush first.
  local runtime_dir status started
  started=$(date +%s%N); sync
  echo "flushed dirty pages in $(( ($(date +%s%N) - started) / 1000000 )) ms"
  runtime_dir=$(mktemp -d /dev/shm/omasnap-runtime.XXXXXX)
  if QT_QPA_PLATFORM=offscreen QT_FORCE_STDERR_LOGGING=1 \
    XDG_RUNTIME_DIR="$runtime_dir" \
    ./build/omasnap-smoke "$srcdir/omasnap-smoke-output"; then
    status=0
  else
    status=$?
    echo "omasnap-smoke exited with status $status" >&2
  fi
  rm -r -- "$runtime_dir"
  return "$status"
}

package() {
  cmake --install build --prefix "$pkgdir/usr"
  install -Dm644 "$pkgname-$pkgver/README.md" \
    "$pkgdir/usr/share/doc/$pkgname/README.md"
  install -Dm644 "$pkgname-$pkgver/LICENSE" \
    "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}
