# cosmic-screenshot — la captura de pantalla. **La receta más barata de toda la campaña y la más
# inútil por sí sola**, y las dos cosas por la misma razón: no captura nada; le PIDE la captura al
# portal XDG.
#
# ── LO QUE ES: 130 líneas de Rust y cero C ──────────────────────────────────────────────────────
# Sus deps son `ashpd` (cliente de portales sobre zbus), `jiff`, `dirs`, `tokio`, `clap`, `zbus` y el
# andamiaje de i18n. Los únicos `-sys` del lock son `dirs-sys`, `linux-raw-sys`, `js-sys` y
# `windows-sys`: ninguno compila C en Linux. No necesita ni el juego fijo de cuatro que pide todo
# cliente de la suite — no dibuja, no abre ventana, no habla wayland.
#
# ── LO QUE NO ES: no hay captura sin PORTAL ─────────────────────────────────────────────────────
# `src/main.rs` arranca con `use ashpd::desktop::screenshot::Screenshot` y todo su trabajo es
# `Screenshot::request()`, o sea una llamada a `org.freedesktop.portal.Desktop`. Ese nombre lo
# registra el frontend `xdg-desktop-portal`, que **no está en la imagen**; el backend que lo
# implementaría para este escritorio es `xdg-desktop-portal-cosmic`, que tampoco.
#
# Así que esta receta entrega **el binario correcto y el `.desktop` en la biblioteca**, y al
# ejecutarlo falla al no encontrar el portal. Se sella igual y a propósito: es la pieza cliente, ya
# está paga, y deja el frente reducido a UNA pregunta —¿se puede tener el portal sin la glib
# compartida?—. El frontend `xdg-desktop-portal` es C sobre GIO; el backend de COSMIC es Rust. Ver el
# runbook.
#
# Lo único que SÍ funciona hoy de su código es el aviso final: manda `org.freedesktop.Notifications`,
# y eso lo sirve `cosmic-notifications`, que ya está en la imagen.
#
# El `.desktop` y los iconos vienen ESTÁTICOS en `resources/`, no generados por `xdgen` como en
# term/files/settings/edit/store. Por eso acá no hacen falta `INSTALL_DIR` ni `APPID`.
name    = "cosmic-screenshot"
version = "0.1.0"
license = "GPL-3.0"

[source]
tarball = "https://github.com/pop-os/cosmic-screenshot/archive/epoch-1.5.0/cosmic-screenshot-epoch-1.5.0.tar.gz"
sha256  = "2a0a1fb18303773fbfe54613b0b5603871a72cbbb5b0ae183b5390227671b9a3"

[build]
compiler = "zig-cc"
target   = "x86_64-linux-musl"
# Acá el estático SÍ se podría: no enlaza wayland, así que no lo alcanza la trampa del `dlopen` de
# `wayland-client` que obliga a dinámico a todos los demás clientes. Se deja dinámico igual, por
# coherencia con la suite y para no ser la única pieza que resuelva distinto.
link     = "dynamic"

[build.phases]
install = '''
mkdir -p /out/usr/bin /out/usr/share/applications
cp target/release/cosmic-screenshot /out/usr/bin/cosmic-screenshot
chmod 755 /out/usr/bin/cosmic-screenshot
cp resources/com.system76.CosmicScreenshot.desktop /out/usr/share/applications/
for size in resources/icons/hicolor/*; do
  [ -d "$size" ] || continue
  s=$(basename "$size")
  if [ -f "$size/apps/com.system76.CosmicScreenshot.svg" ]; then
    mkdir -p "/out/usr/share/icons/hicolor/$s/apps"
    cp "$size/apps/com.system76.CosmicScreenshot.svg" "/out/usr/share/icons/hicolor/$s/apps/"
  fi
done
'''

[deps]
# Vacío a propósito, y medido: no hay un solo `-sys` que compile C en Linux. Es la única pieza de la
# suite que no necesita ni `libxkbcommon` ni `libinput`.
build = []
