PR-Q3a.0: install daedalus-decoder.pc for sibling consumers #17

Merged
marfrit merged 1 commits from noether/decoder-pkgconfig into main 2026-05-26 11:56:04 +00:00
Owner

Prerequisite for PR-Q3a daemon-side shadow-mode wiring. Adds pkg-config plumbing so the daedalus-v4l2 daemon (and the daedalus_decode_h264 CLI when built externally) can locate libdaedalus_decoder.a + the public header via pkg_check_modules / pkg-config.

What

Mirrors daedalus-fourier's relocatable-prefix .pc generation:

  • prefix derived from ${pcfiledir} so cmake --install --prefix /foo produces a .pc that resolves to /foo at lookup time, independent of CMAKE_INSTALL_PREFIX at configure time.
  • Requires: daedalus-fourier (public, not private) — consumers static-link libdaedalus_decoder.a and ALSO need libdaedalus_core.a in their link line to resolve the daedalus_ctx_* / daedalus_recipe_* symbols this archive references.
  • Libs: -ldaedalus_decoder, Cflags: -I${includedir}.

Verified on hertz

$ pkg-config --validate daedalus-decoder ; echo rc=$?
rc=0
$ pkg-config --modversion daedalus-decoder
0.0.1
$ pkg-config --cflags --libs daedalus-decoder
-I/.../prefix/include -L/.../prefix/lib -ldaedalus_decoder -ldaedalus_core

Relocatability: installed to two different prefixes, confirmed prefix variable resolves to each one independently.

Why now

Unblocks PR-Q3a.1 in daedalus-v4l2: the daemon's CMake needs pkg_check_modules(DAEDALUS_DECODER REQUIRED daedalus-decoder) to link the library into the shadow-mode path.

Architectural framing (dejavu-check)

Pure consumer-side packaging. Adds nothing about the per-kernel libavcodec substitution arc. Frame-major UMA dispatch shape unchanged; this lets the daedalus-v4l2 daemon link the right archive.

Prerequisite for PR-Q3a daemon-side shadow-mode wiring. Adds pkg-config plumbing so the daedalus-v4l2 daemon (and the daedalus_decode_h264 CLI when built externally) can locate libdaedalus_decoder.a + the public header via pkg_check_modules / pkg-config. ## What Mirrors daedalus-fourier's relocatable-prefix .pc generation: - `prefix` derived from `${pcfiledir}` so `cmake --install --prefix /foo` produces a .pc that resolves to /foo at lookup time, independent of `CMAKE_INSTALL_PREFIX` at configure time. - `Requires: daedalus-fourier` (public, not private) — consumers static-link `libdaedalus_decoder.a` and ALSO need `libdaedalus_core.a` in their link line to resolve the `daedalus_ctx_*` / `daedalus_recipe_*` symbols this archive references. - `Libs: -ldaedalus_decoder`, `Cflags: -I${includedir}`. ## Verified on hertz ``` $ pkg-config --validate daedalus-decoder ; echo rc=$? rc=0 $ pkg-config --modversion daedalus-decoder 0.0.1 $ pkg-config --cflags --libs daedalus-decoder -I/.../prefix/include -L/.../prefix/lib -ldaedalus_decoder -ldaedalus_core ``` Relocatability: installed to two different prefixes, confirmed `prefix` variable resolves to each one independently. ## Why now Unblocks PR-Q3a.1 in daedalus-v4l2: the daemon's CMake needs `pkg_check_modules(DAEDALUS_DECODER REQUIRED daedalus-decoder)` to link the library into the shadow-mode path. ## Architectural framing (dejavu-check) Pure consumer-side packaging. Adds nothing about the per-kernel libavcodec substitution arc. Frame-major UMA dispatch shape unchanged; this lets the daedalus-v4l2 daemon link the right archive.
marfrit added 1 commit 2026-05-26 11:33:53 +00:00
Adds pkg-config plumbing so consumers (daedalus-v4l2 daemon for the
upcoming PR-Q3a shadow-mode wiring; the daedalus_decode_h264 CLI when
built outside this tree) can locate libdaedalus_decoder.a + the public
header via pkg_check_modules / pkg-config.

Mirrors daedalus-fourier's relocatable-prefix scheme: prefix is derived
from ${pcfiledir} so cmake --install --prefix /foo produces a .pc that
resolves to /foo at lookup time. Verified across two install prefixes.

daedalus-fourier is declared as a public Requires: because consumers
static-linking libdaedalus_decoder.a also need libdaedalus_core.a in
their link line to resolve the daedalus_ctx_* / daedalus_recipe_*
symbols this archive references.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
marfrit merged commit 8abd47e9f6 into main 2026-05-26 11:56:04 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: marfrit/daedalus-decoder#17