# cosmic-workspaces — la vista general de espacios de trabajo (el «overview» de COSMIC). Cliente de
# iced/libcosmic; el repo se llama `cosmic-workspaces-epoch` pero el binario y el AppID no llevan el
# sufijo, y `cosmic-session` lo busca como `cosmic-workspaces`. Los tres nombres importan y no
# coinciden: el del repo es el de la URL, el del binario el del PATH, y el AppID el de cosmic-config.
name    = "cosmic-workspaces-epoch"
version = "1.5.0"
license = "GPL-3.0"

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

[build]
compiler = "zig-cc"
target   = "x86_64-linux-musl"
# ── DINÁMICO, Y NO ES UNA PREFERENCIA ──────────────────────────────────────────────────────────
# `wayland-client` entra con la feature `dlopen`: no ENLAZA libwayland-client, la carga en runtime.
# Un binario musl ESTÁTICO no tiene dlopen funcional, así que el cliente arranca y muere con
# «The wayland library could not be loaded» — con el .so presente en el rootfs, que es lo que hace
# el diagnóstico confuso: no falta la librería, falta poder abrirla.
link     = "dynamic"
flags    = ["--bin", "cosmic-workspaces"]

[build.phases]
install = '''
mkdir -p /out/usr/bin /out/usr/share/applications /out/usr/share/icons/hicolor/scalable/apps
cp target/release/cosmic-workspaces /out/usr/bin/cosmic-workspaces
chmod 755 /out/usr/bin/cosmic-workspaces
cp data/com.system76.CosmicWorkspaces.desktop /out/usr/share/applications/
cp data/com.system76.CosmicWorkspaces.svg     /out/usr/share/icons/hicolor/scalable/apps/
'''

[deps]
# libudev-zero: lo pide `libudev-sys`, que llega por la cadena de libcosmic (enumeración de
# monitores y de dispositivos de entrada). Es el tercer miembro fijo del juego de deps de todo
# cliente de la suite, junto con libxkbcommon y pkgconf.
# La línea de enlace del primer intento pedía, en este orden: `-ludev -linput -lxkbcommon`. Los
# tres llegan por la cadena de libcosmic —enumeración de monitores y de dispositivos de entrada—,
# no por nada que el cliente haga a la vista. Es el juego FIJO de todo cliente de la suite; se
# descubrió uno por build hasta leerlo de una sola vez en el comando del linker.
#
# `mesa` es la QUINTA, y sólo la necesita ESTE cliente: la vista de espacios de trabajo muestra
# miniaturas vivas de las ventanas, que el compositor le pasa como DMA-BUF por
# `zcosmic-toplevel-info`. Para convertir ese buffer en algo dibujable importa el fd con GBM ⇒
# `-lgbm`. O sea que la dep no viene del toolkit sino de lo que el programa MUESTRA — el único de
# la suite que toca el pipeline gráfico además del compositor.
build = ["libxkbcommon", "pkgconf", "libudev-zero", "libinput", "mesa"]
