# jansson 2.14.1 — JSON en C. Entra por OBS: `libobs` la usa para leer/escribir sus perfiles y # escenas. # # CMake y no autotools: el tarball de release trae `configure`, pero la fuente por commit (ADR 0006) # NO — `configure` lo genera `autoreconf`, que pediría el stack autotools entero en `[deps]`. El # árbol trae `CMakeLists.txt` de primera clase, así que se usa ése y el cierre queda en cmake+ninja. # # `-DJANSSON_BUILD_DOCS=OFF` porque su default ON invoca sphinx, que no está en el corpus; y # `-DJANSSON_WITHOUT_TESTS=ON` para no compilar el árbol de tests, que no aporta al artefacto. # # ⚠ LA PERILLA ES `JANSSON_BUILD_SHARED_LIBS`, **NO** `BUILD_SHARED_LIBS`. jansson declara la suya # propia (`CMakeLists.txt:5`, default OFF) y NO mira la estándar de CMake. Con `-DBUILD_SHARED_LIBS=ON` # el build sale con exit 0 y sella un artefacto que trae SÓLO `libjansson.a` — o sea que la receta # dice `link = "dynamic"` y el artefacto es estático, y nadie se entera hasta que un `.so` que la # consume muere por PIC. Verificado mirando el `usr/lib/` del artefacto, no el código de salida: # es la misma familia que el `link=static` que miente por libtool. # # Fuente por commit: `v2.14.1` es un tag ANOTADO ⇒ esto es el `^{}` pelado. name = "jansson" version = "2.14.1" license = "MIT" [source] repo = "https://github.com/akheron/jansson.git" commit = "ed5cae4ed0621ef409510f94270c9f8f263736d0" [build] compiler = "zig-cc" target = "x86_64-linux-musl" # DINÁMICO: OBS carga `libobs.so` y sus plugins como objetos compartidos, y una jansson `.a` sin PIC # dentro de un `.so` es el fallo que ya costó caro en gdk-pixbuf. Compartida y sin sorpresas. link = "dynamic" flags = [] [build.phases] configure = 'cmake -B build -G Ninja -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DJANSSON_BUILD_SHARED_LIBS=ON -DJANSSON_BUILD_DOCS=OFF -DJANSSON_WITHOUT_TESTS=ON -DJANSSON_EXAMPLES=OFF' compile = 'cmake --build build' install = 'DESTDIR=/out cmake --install build' [deps] build = ["cmake", "samurai", "pkgconf"]