# cxxopts 3.3.1 — parser de argumentos de línea de comandos para C++, header-only. # # Entra como dep de `pamixer`, que la busca por pkg-config (`dependency('cxxopts')` en su # `meson.build`). Es una sola cabecera: no compila nada y no publica biblioteca. # # ⚠ **Lo único que importa acá es el `.pc`**, y por eso el guardián lo comprueba con el chequeo # FUERTE. Una cabecera instalada sin su `.pc` es invisible para meson y para cualquier # `PKG_CHECK_MODULES`: el consumidor falla diciendo «Dependency cxxopts not found», que no menciona # que el fichero está ahí. Upstream trae la plantilla (`packaging/pkgconfig.pc.in`) y su cmake la # instala si `CXXOPTS_ENABLE_INSTALL` está en On. name = "cxxopts" version = "3.3.1" license = "MIT" [source] tarball = "https://github.com/jarro2783/cxxopts/archive/refs/tags/v3.3.1/cxxopts-3.3.1.tar.gz" sha256 = "3bfc70542c521d4b55a46429d808178916a579b28d048bd8c727ee76c39e2072" [build] compiler = "zig-cc" target = "x86_64-linux-musl" link = "static" flags = [] [build.phases] configure = ''' ZW="$PWD/.zwrap"; mkdir -p "$ZW" printf '#!/bin/sh\nexec /opt/zig/zig cc -mcpu=baseline "$@"\n' > "$ZW/cc" printf '#!/bin/sh\nexec /opt/zig/zig c++ -mcpu=baseline "$@"\n' > "$ZW/cxx" chmod +x "$ZW/cc" "$ZW/cxx" rm -rf build cmake -B build -G Ninja -Wno-dev \ -DCMAKE_C_COMPILER="$ZW/cc" -DCMAKE_CXX_COMPILER="$ZW/cxx" \ -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_INSTALL_LIBDIR=lib \ -DCXXOPTS_BUILD_EXAMPLES=OFF -DCXXOPTS_BUILD_TESTS=OFF \ -DCXXOPTS_ENABLE_INSTALL=ON ''' compile = "cmake --build build" install = ''' set -e DESTDIR=/out cmake --install build [ -f /out/usr/include/cxxopts.hpp ] || { echo "cxxopts: falta include/cxxopts.hpp" >&2; find /out -name 'cxxopts*' >&2; exit 1; } pc=$(find /out/usr -name 'cxxopts.pc' 2>/dev/null | head -1) [ -n "$pc" ] || { echo "cxxopts: no quedó cxxopts.pc — meson la busca con dependency('cxxopts') y diría «not found» sin mencionar que la cabecera está" >&2; find /out -name '*.pc' >&2; exit 1; } # CHEQUEO FUERTE: con PKG_CONFIG_LIBDIR puesto, para no leer el anfitrión, y pidiendo cflags de # verdad en vez de `--exists`, que no valida nada. PKG_CONFIG_LIBDIR=$(dirname "$pc") pkgconf --cflags cxxopts >/dev/null 2>&1 || { echo "cxxopts: pkgconf no resuelve 'cxxopts'" >&2 PKG_CONFIG_LIBDIR=$(dirname "$pc") pkgconf --cflags cxxopts >&2 exit 1 } echo "cxxopts: cxxopts.hpp + cxxopts.pc $(PKG_CONFIG_LIBDIR=$(dirname "$pc") pkgconf --modversion cxxopts)" ''' [deps] build = ["cmake", "samurai", "pkgconf"]