# libadwaita 1.7.6 — VARIANTE ISLA DINÁMICA (SHADOW de recipes/libadwaita.toml estática).
# Los widgets modernos de GNOME sobre GTK4. Compila sus estilos SCSS con sassc en build.
#
# POR QUÉ EXISTE: `xdg-desktop-portal-gnome` no sellaba. El link moría con
#     relocation R_X86_64_64 cannot be used against local symbol ... libfontconfig.a(fccfg.o)
# y no era culpa de xdp-gnome: sus deps ya estaban en `-shared`. El cierre lo metía libadwaita, que
# resuelve a la del CORPUS —receta entera de la era estática, con fontconfig/freetype/libpng/... todas
# canónicas—. El artefacto monta esas `.a` y el linker las prefiere. No le faltaba una variante a la
# receta del corpus: NO PERTENECE a la isla. De ahí esta sombra. La del corpus NO se toca: la comparten
# otras colas (`yupana radio libadwaita` = 4 dependientes, 3 en corpus).
#
# vs corpus (mundo estático), REVERTIDO:
#  · link=dynamic, default_library=shared, SIN --prefer-static.
#  · default_library=SHARED y no `both` a propósito: producir también una `.a` reintroduciría justo el
#    fallo que esta receta arregla —una estática montada que el linker elige por encima de la `.so`—.
#  · las deps no-PIC pasan a su variante `-shared` (ver abajo).
#  · introspection sigue disabled: el único consumidor de la isla (xdp-gnome) es C y no dlopea Adw.
#
# 🔬 CÓMO SE ELIGIÓ LA LISTA DE DEPS — medido, no adivinado. Se barrió el cierre entero preguntando
# «¿esta .a puede embeberse en una .so?». Resultado: las ÚNICAS no-PIC son fontconfig, freetype,
# libpng, libjpeg-turbo, libtiff, libxml2 y libyaml — o sea EXACTAMENTE las que ya tenían sombra
# `-shared` en esta cola, más libyaml, que era la única sin variante y por eso se escribió
# `libyaml-shared.toml`. appstream, libxmlb, curl, openssl y zstd son PIC y se embeben tal cual: NO
# hacen falta variantes para ellas (creerlo habría costado 5 builds de openssl/curl al pedo).
#
# ⚠ Y OJO CON LA REGLA CORTA, QUE MIENTE: `readelf -r x.a | grep R_X86_64_32` cuenta también las
# reubicaciones de `.rela.debug_*`, inocuas y presentes en TODO objeto. Así medido, libepoxy da 39.630
# «no-PIC» y sin embargo está EMBEBIDA dentro de la libgtk-4.so de la isla (3.446 símbolos `epoxy_`
# definidos). Hay que excluir las secciones de debug:
#     readelf -r x.a | awk '/^Relocation section/{s=$3} /R_X86_64_32/{if (s !~ /debug/) n++} END{print n}'
# Control: libepoxy=0 (embebe bien) · fontconfig=1122 (rompe el link). Ver [[gnome-introspection-dinamica]].
name    = "libadwaita"
version = "1.7.6"
license = "LGPL-2.1-or-later"

[source]
tarball = "https://download.gnome.org/sources/libadwaita/1.7/libadwaita-1.7.6.tar.xz"
sha256  = "5eacc5550f0bdbba6a1568aebf25a3d88f5ee07d6b558becc6fd9487579c9a29"

[build]
compiler = "zig-cc"
target   = "x86_64-linux-musl"
link     = "dynamic"

[build.phases]
configure = "PKG_CONFIG_PATH=/usr/lib/pkgconfig PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release --wrap-mode=nodownload -Ddefault_library=shared -Dexamples=false -Dtests=false -Dvapi=false -Dintrospection=disabled -Dgtk_doc=false -Dc_args=-Wno-error=date-time"
compile   = "PYTHONPATH=/usr/lib/python3.12/site-packages ninja -C output"
install   = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson install -C output --no-rebuild"

[deps]
# gtk4/pango/gdk-pixbuf/graphene/glib/harfbuzz resuelven a las ISLAS (shadow de esta misma cola).
# appstream entra porque libadwaita-1.pc lo declara `Requires:` (dep PÚBLICA desde 1.6, release-notes
# de AdwAboutDialog) y arrastra libxmlb/libyaml/curl/openssl/zstd.
build = ["meson", "samurai", "python3", "pkgconf", "sassc", "appstream", "libyaml-shared", "curl", "openssl", "libxmlb", "libxml2-shared", "zstd", "gtk4", "pango", "gdk-pixbuf", "cairo-shared", "graphene", "glib", "harfbuzz", "fribidi", "fontconfig-shared", "freetype-shared", "pixman", "libpng-shared", "expat", "libjpeg-turbo-shared", "libtiff-shared", "libepoxy", "wayland", "wayland-protocols", "libxkbcommon", "libdrm", "pcre2", "libffi", "zlib-shared", "mesa"]
