# cosmic-term — el emulador de terminal de COSMIC, y **la primera aplicación con ventana** del
# catálogo. Hasta acá el escritorio tenía compositor, panel, dock, lanzador y una calculadora que
# devuelve una fila de texto; ninguna ventana de verdad. Ésta lo es, y de paso convierte la
# biblioteca de aplicaciones —que hoy sale vacía porque los veinte `.desktop` de la imagen son
# `NoDisplay=true`— en algo que muestra al menos una entrada.
#
# ── LO QUE ARRASTRA, Y QUE NO SE ADIVINA ────────────────────────────────────────────────────────
# Su `Cargo.toml` depende de **`cosmic-files`**: el gestor de ficheros entra como LIBRERÍA (el
# selector y el arrastrar-y-soltar), no como aplicación. O sea que compilar la terminal compila
# medio gestor de ficheros. Es el mismo patrón que ya apareció con `cosmic-settings-config` en los
# applets: en esta suite las «aplicaciones» se usan unas a otras como crates.
#
# `wgpu` viene en `default`, al revés que el resto de los clientes que sellamos —que pintan con
# tiny-skia porque su libcosmic entra sin esa feature—. Se deja: `wgpu` y `naga` ya se compilaron
# enteros para `cosmic-workspaces` (están en su línea de enlace), así que el costo ya está pago, y
# tocar las features por defecto es apartarse de la única combinación que upstream prueba.
name    = "cosmic-term"
version = "1.5.0"
license = "GPL-3.0-only"

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

[build]
compiler = "zig-cc"
target   = "x86_64-linux-musl"
# Dinámico como todo cliente de la suite: `wayland-client` entra con la feature `dlopen` y un musl
# estático no la honra — arranca y muere con «The wayland library could not be loaded» *teniendo*
# el `.so`.
link     = "dynamic"
flags    = ["--bin", "cosmic-term"]

[build.phases]
# El `just install` traducido con `rootdir=/`. Los `.desktop`/`.metainfo` los GENERA el build en
# `target/xdgen/` (crate `xdgen` como build-dependency), no están en el tarball: se copian si
# aparecen. Acá **sí** conviene que el `.desktop` exista, al revés que en los applets — es lo que
# hace que la aplicación se vea en la biblioteca.
install = '''
mkdir -p /out/usr/bin /out/usr/share/applications /out/usr/share/metainfo
cp target/release/cosmic-term /out/usr/bin/cosmic-term
chmod 755 /out/usr/bin/cosmic-term
cp target/xdgen/com.system76.CosmicTerm.desktop      /out/usr/share/applications/ 2>/dev/null || true
cp target/xdgen/com.system76.CosmicTerm.metainfo.xml /out/usr/share/metainfo/ 2>/dev/null || true
for size in res/icons/hicolor/*; do
  [ -d "$size" ] || continue
  s=$(basename "$size")
  if [ -f "$size/apps/com.system76.CosmicTerm.svg" ]; then
    mkdir -p "/out/usr/share/icons/hicolor/$s/apps"
    cp "$size/apps/com.system76.CosmicTerm.svg" "/out/usr/share/icons/hicolor/$s/apps/"
  fi
done
'''

[deps]
# El juego fijo de todo cliente de la suite. `dbus-config` y `password_manager` (secret-service)
# hablan por **zbus**, que es Rust puro: no suman `libdbus`, al revés que cosmic-applets.
build = ["libxkbcommon", "pkgconf", "libudev-zero", "libinput"]
