# Profile kit: original source bytes and separately committed packaging tooling.
# shellcheck shell=bash disable=SC2034,SC2154
pkgname=cua-hyprland-plugin
pkgver=0.33.2
pkgrel=2
pkgdesc='Cua input candidate for reviewed profile omarchy-edge-20261004'
arch=('x86_64')
url='https://github.com/trycua/cua'
license=('MIT')
depends=('hyprland=0.56.2-4' 'abseil-cpp=20260817.0-2' 'aquamarine=0.15.1-1' 'brotli=1.2.0-1' 'bzip2=1.0.8-6' 'cairo=1.18.6-1' 'dav1d=1.5.4-1' 'expat=2.8.5-1' 'file=5.48-1' 'fontconfig=2:2.18.3-2' 'freetype2=2.14.3-1' 'fribidi=1.0.17-1' 'gdk-pixbuf2=2.44.7-1' 'glib2=2.88.3-1' 'glibc=2.44+r50+g1848099f063e-1' 'glslang=1:1.4.363.0-1' 'glycin=2.1.5-2' 'graphite=1:1.3.15-1' 'harfbuzz=14.5.1-1' 'highway=1.4.0-1' 'hyprcursor=0.1.13-7' 'hyprgraphics=0.5.1-4' 'hyprlang=0.6.8-5' 'hyprutils=0.14.2-1' 'icu=78.3-1' 'lcms2=2.19.1-1' 'libdatrie=0.2.14-1' 'libdisplay-info=0.3.0-1' 'libdrm=2.4.134-1' 'libei=1.6.0-1' 'libevdev=1.13.7-1' 'libffi=3.8.0-1' 'libgcc=16.2.1+r23+gd564253eb6c8-1' 'libglvnd=1.7.0-3' 'libgomp=16.2.1+r23+gd564253eb6c8-1' 'libgudev=238-3' 'libinput=1.32.0-1' 'libjpeg-turbo=3.2.0-2' 'libjxl=0.12.0-1' 'libpng=1.6.59-1' 'librsvg=2:2.62.4-1' 'libseccomp=2.6.0-1' 'libstdc++=16.2.1+r23+gd564253eb6c8-1' 'libthai=0.1.30-1' 'libwacom=2.20.0-1' 'libwebp=1.6.0-2' 'libx11=1.8.13-1' 'libxau=1.0.12-1' 'libxcb=1.17.0-1' 'libxcursor=1.2.3-1' 'libxdmcp=1.1.5-2' 'libxext=1.3.7-1' 'libxfixes=6.0.2-1' 'libxkbcommon=1.13.2-1' 'libxml2=2.15.4-1' 'libxrender=0.9.12-1' 'libzip=1.11.4-1' 'lua=5.5.1-1' 'lua54=5.4.9-1' 'mesa=1:26.2.4-1' 'mtdev=1.1.7-1' 'muparser=2.3.5-2' 'openssl=3.6.5-1' 'pango=1:1.58.2-1' 'pcre2=10.49-1' 'pixman=0.46.4-1' 're2=2:2025.11.05-6' 'seatd=0.9.3-1' 'spirv-tools=1:1.4.363.0-1' 'systemd-libs=262-1' 'tomlplusplus=3.4.0-2' 'util-linux-libs=2.42.4-1' 'wayland=1.26.0-1' 'xcb-util-errors=1.0.1-2' 'xcb-util-wm=0.4.2-2' 'xz=5.8.4-1' 'zlib=1:1.3.2-3' 'zstd=1.5.7-3' 'python>=3.11' 'binutils')
makedepends=('cmake>=3.30' 'ninja' 'pkgconf' 'gcc')
options=('!strip' '!debug' '!lto')
_stem='cua-hyprland-plugin-0.33.2-c82d32e3e1adbc6578a148962002ddf6e3e8a15a'
_archive_sha256='79596a9a5e7300546ad4ab0646430edcf3e0c0456a541458de2a52b8c44a8fad'
_kit_sha256='e1c1653045149af9e1fba077a5bd91008c3178a180e62ac06dac9f19c6db5fbe'
_profile_sha256='0ada2c227d0817b0228e9d8127e2363a785c13175a9b74fbebaedc9825d3a4fd'
_verifier_sha256='480f649cbd35a0ddc7f49dc0a3a44785402c9e0ec9653b0f8ea4965d52d7f900'
_cxx="${CUA_RELEASE_CXX:-/usr/bin/g++}"
source=("${_stem}.tar.gz" 'KIT-PROVENANCE.json' 'PROFILE.json' 'profile_verify.py')
sha256sums=('79596a9a5e7300546ad4ab0646430edcf3e0c0456a541458de2a52b8c44a8fad' 'e1c1653045149af9e1fba077a5bd91008c3178a180e62ac06dac9f19c6db5fbe' '0ada2c227d0817b0228e9d8127e2363a785c13175a9b74fbebaedc9825d3a4fd' '480f649cbd35a0ddc7f49dc0a3a44785402c9e0ec9653b0f8ea4965d52d7f900')

_verify() {
  # Explicit checks still apply to --skipinteg, --noextract and --repackage.
  printf '%s  %s\n' "$_archive_sha256" "$startdir/${_stem}.tar.gz" | sha256sum -c - || return 1
  printf '%s  %s\n' "$_kit_sha256" "$startdir/KIT-PROVENANCE.json" | sha256sum -c - || return 1
  printf '%s  %s\n' "$_profile_sha256" "$startdir/PROFILE.json" | sha256sum -c - || return 1
  printf '%s  %s\n' "$_verifier_sha256" "$startdir/profile_verify.py" | sha256sum -c - || return 1
  python3 "$startdir/profile_verify.py" --kit "$startdir" --kit-sha256 "$_kit_sha256" \
    --archive "$startdir/${_stem}.tar.gz" --source "$srcdir/$_stem" --cxx "$_cxx" "$@"
}

prepare() {
  _verify
}

build() {
  _verify || return 1
  cmake -S "$srcdir/$_stem" -B "$srcdir/build" -G Ninja \
    -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER="$_cxx" \
    -DPKG_CONFIG_EXECUTABLE=/usr/bin/pkgconf -DPKG_CONFIG_ARGN= \
    -DPKG_CONFIG_USE_CMAKE_PREFIX_PATH=OFF -DCMAKE_PREFIX_PATH= \
    -DBUILD_TESTING=ON -DCUA_HYPRLAND_BUILD_PLUGIN=ON \
    -DCUA_HYPRLAND_EXPECTED_VERSION=0.56.2 \
    -DCUA_HYPRLAND_INPUT=ON -DCUA_HYPRLAND_TEST_INPUT=OFF \
    -DCUA_HYPRLAND_INPUT_TRACE=OFF -DCUA_HYPRLAND_TEST_OPERATOR_KEY= || return 1
  cmake --build "$srcdir/build"
}

check() {
  _verify || return 1
  (
    unset LD_PRELOAD FAKEROOTKEY FAKED_MODE
    ctest --test-dir "$srcdir/build" --output-on-failure --no-tests=error
  )
}

package() {
  check || return 1
  _verify --build "$srcdir/build" --output "$srcdir/BUILD-PROVENANCE.json" || return 1
  install -Dm755 "$srcdir/build/cua-hyprland-plugin.so" \
    "$pkgdir/usr/lib/cua/hyprland/cua-hyprland-plugin.so" || return 1
  install -Dm644 "$srcdir/$_stem/LICENSE.md" \
    "$pkgdir/usr/share/licenses/$pkgname/LICENSE" || return 1
  install -Dm644 "$srcdir/$_stem/SOURCE-PROVENANCE.json" \
    "$pkgdir/usr/share/$pkgname/SOURCE-PROVENANCE.json" || return 1
  local name
  install -Dm644 "$srcdir/BUILD-PROVENANCE.json" "$pkgdir/usr/share/$pkgname/BUILD-PROVENANCE.json" || return 1
  for name in KIT-PROVENANCE.json PROFILE.json profile_verify.py; do
    install -Dm644 "$startdir/$name" "$pkgdir/usr/share/$pkgname/$name" || return 1
  done
}
