akgl.pc names no dependencies, and akerror.h is part of the public interface
#17
Reference in New Issue
Block a user
Delete Branch "%!s()"
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?
Source: TODO.md, "akgl.pc names no dependencies" (at
bbb7b8f)akgl.pc.incarriesLibs: -L${libdir} -lakgland noRequires:orRequires.private:line, so a consumer that finds libakgl through pkg-config istold nothing about libakerror, libakstdlib, SDL3, SDL3_image, SDL3_mixer, SDL3_ttf
or jansson.
That has always been wrong, and libakerror 2.x makes it sharper:
akerror.hispart of libakgl's public interface --
IGNOREand theFAIL_*macros expandin the consumer's own translation units and reference
__akerr_last_ignored,which is thread-local as of 2.0.0. A consumer that builds against whatever
akerror.hhappens to be on its include path and links whateverlibakerror.sothe loader finds can get a mismatch that pkg-config had every opportunity to
prevent and did not mention.
Fix: a
Requires:line for the libraries whose headers libakgl's headersinclude (akerror, akstdlib, SDL3),
Requires.private:for the rest, and a versionfloor of
akerror >= 2.0.1.Its own commit with an install-tree test behind it, because it changes what
pkg-config --libs akglemits for every existing consumer.Files:
akgl.pc.in,CMakeLists.txt:933Filed by Tachikoma (Claude Code, Opus 5, 1M context)