gioser

sergio/takana

> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…

TOML 1572Shell 203Rust 109Markdown 993728 Definiciones

⎇ 534014c3ec69daea789a1d0523e1d00a69c6ed65 recipes/cxxopts.toml TOML · 57 líneas · 2.5 KB Historia crudo

salud del disco: smartmontools, y el hueco que no era de espacio 57d556969 · Sergio ·

1# cxxopts 3.3.1 — parser de argumentos de línea de comandos para C++, header-only.
2#
3# Entra como dep de `pamixer`, que la busca por pkg-config (`dependency('cxxopts')` en su
4# `meson.build`). Es una sola cabecera: no compila nada y no publica biblioteca.
5#
6# ⚠ **Lo único que importa acá es el `.pc`**, y por eso el guardián lo comprueba con el chequeo
7# FUERTE. Una cabecera instalada sin su `.pc` es invisible para meson y para cualquier
8# `PKG_CHECK_MODULES`: el consumidor falla diciendo «Dependency cxxopts not found», que no menciona
9# que el fichero está ahí. Upstream trae la plantilla (`packaging/pkgconfig.pc.in`) y su cmake la
10# instala si `CXXOPTS_ENABLE_INSTALL` está en On.
11name    = "cxxopts"
12version = "3.3.1"
13license = "MIT"
14
15[source]
16tarball = "https://github.com/jarro2783/cxxopts/archive/refs/tags/v3.3.1/cxxopts-3.3.1.tar.gz"
17sha256  = "3bfc70542c521d4b55a46429d808178916a579b28d048bd8c727ee76c39e2072"
18
19[build]
20compiler = "zig-cc"
21target   = "x86_64-linux-musl"
22link     = "static"
23flags    = []
24
25[build.phases]
26configure = '''
27ZW="$PWD/.zwrap"; mkdir -p "$ZW"
28printf '#!/bin/sh\nexec /opt/zig/zig cc -mcpu=baseline "$@"\n'  > "$ZW/cc"
29printf '#!/bin/sh\nexec /opt/zig/zig c++ -mcpu=baseline "$@"\n' > "$ZW/cxx"
30chmod +x "$ZW/cc" "$ZW/cxx"
31rm -rf build
32cmake -B build -G Ninja -Wno-dev \
33  -DCMAKE_C_COMPILER="$ZW/cc" -DCMAKE_CXX_COMPILER="$ZW/cxx" \
34  -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr \
35  -DCMAKE_INSTALL_LIBDIR=lib \
36  -DCXXOPTS_BUILD_EXAMPLES=OFF -DCXXOPTS_BUILD_TESTS=OFF \
37  -DCXXOPTS_ENABLE_INSTALL=ON
38'''
39compile = "cmake --build build"
40install = '''
41set -e
42DESTDIR=/out cmake --install build
43[ -f /out/usr/include/cxxopts.hpp ] || { echo "cxxopts: falta include/cxxopts.hpp" >&2; find /out -name 'cxxopts*' >&2; exit 1; }
44pc=$(find /out/usr -name 'cxxopts.pc' 2>/dev/null | head -1)
45[ -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; }
46# CHEQUEO FUERTE: con PKG_CONFIG_LIBDIR puesto, para no leer el anfitrión, y pidiendo cflags de
47# verdad en vez de `--exists`, que no valida nada.
48PKG_CONFIG_LIBDIR=$(dirname "$pc") pkgconf --cflags cxxopts >/dev/null 2>&1 || {
49  echo "cxxopts: pkgconf no resuelve 'cxxopts'" >&2
50  PKG_CONFIG_LIBDIR=$(dirname "$pc") pkgconf --cflags cxxopts >&2
51  exit 1
52}
53echo "cxxopts: cxxopts.hpp + cxxopts.pc $(PKG_CONFIG_LIBDIR=$(dirname "$pc") pkgconf --modversion cxxopts)"
54'''
55
56[deps]
57build = ["cmake", "samurai", "pkgconf"]