CMakeLists: install rules + pkg-config for daedalus_core #1
Reference in New Issue
Block a user
Delete Branch "noether/installable-pkgconfig"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
First small step toward letting the daedalus-v4l2 daemon depend on daedalus-fourier (per the H.264 daemon-rewrite plan in reauktion/daedalus-v4l2#11 + the hybrid-substrate philosophy: V3D where it pays + NEON elsewhere, electrons saved).
Adds
install()rules + a generateddaedalus-fourier.pcso a sibling consumer canpkg_check_modules(DAEDALUS REQUIRED daedalus-fourier)and link against a system-installed copy.What gets installed
lib/libdaedalus_core.ainclude/daedalus.hlib/pkgconfig/daedalus-fourier.pcshare/daedalus-fourier/shaders/*.spv(only whenDAEDALUS_BUILD_VULKAN=ON; consumers usingdaedalus_ctx_create_no_qpu()don't need them)pkg-config output
Static-archive transitive deps surface via
Libs.private(pthread, dl, m for the C runtime helpers + the vendored asm glue) andRequires.private(vulkan). Non-static consumers using only the no-QPU path get just-ldaedalus_core; static consumers needing V3D get the full transitive line via--static.Verified
Clean build + install on hertz (Pi 5 dev host). All 7 SPIR-V shaders + the static lib + the header + the
.pcfile land in the install prefix. No behaviour change to existing tests / benches.Next steps
This PR is purely enabling — no consumer is wired up yet. Follow-ups, in order:
pkg_check_modules+daedalus_ctx_create_no_qpu()at startup, log result, commit (separate PR).Deliberate small steps so each one is reviewable + reversible. See reauktion/daedalus-v4l2#11 for the full design.
Make daedalus_core installable so sibling consumers (Phase 8 V4L2 daemon, future libva-v4l2-request-fourier integration tests, etc.) can `pkg_check_modules(DAEDALUS REQUIRED daedalus-fourier)` against a system-installed copy. Installs: - lib/libdaedalus_core.a - include/daedalus.h - lib/pkgconfig/daedalus-fourier.pc - share/daedalus-fourier/shaders/*.spv (only when DAEDALUS_BUILD_VULKAN is ON; consumers using daedalus_ctx_create_no_qpu() don't need them) pkg-config surfaces the static-archive transitive deps via Libs.private (-lpthread -ldl -lm) and Requires.private (vulkan), so a consumer doing `pkg-config --static --libs daedalus-fourier` gets the full link line. Non-static consumers (using the no_qpu path) get just `-ldaedalus_core`. No behaviour change to existing tests / benches. Verified on hertz (Pi 5, dev host): clean build, all 7 SPIR-V shaders + the static lib + the header + the .pc file land in the install prefix.