| > and perhaps hopefully become a "standard" API people can target on Linux without having to carry 29892482923TB of libraries for a trivial app since you cannot rely on anything outside of X11 being there so, uh, what would you depend on ? at the bare minimum you would need, for a gui toolkit : - dependencies to X11 (xcb) and wayland (and cocoa and win32) - dependencies to xkb, etc.. for keyboard handling - dependencies on ICU for unicode text handling - dependencies on freetype, fontconfig, harfbuzz, pango, etc... for font rendering - dependencies on GL to allow your users to have a GL viewport, and potentiall on a software implementation of GL on windows because yes, even in 2019 this is still a problem on some user's computers - dependencies on cairo, skia, QPainter, or something like that to provide a canvas-like API - dependencies on libinput because that's the modern way to get mouse input on linux - you are going to want a library of useful datastructures that aren't provided in C -> dependency to GLib or something else - dependencies on libpng,jpeg, etc.... because you want your users to be able to have images in their app - dependencies on dbus to be able to provide desktop notifications, etc and you aren't even starting to match all the useful functionalities of GTK & Qt |
In any case, the dependencies i mean here are dependencies for the applications that target your API, not the dependencies your API has. You can make your API use whatever library you want to -e.g.- load PNG, JPG or whatever, but that can be hidden from the user of the API (ie. their binary will link against libyourapi.so.1 for yapi_load_image and what that specific version of libyourapi.so.1 uses to load the requested image is an implementation detail).
Note that this is in the context of making that API a standard people can target, not a reusable library (and its own dependencies) people carry with their binaries. Basically the equivalent of how you do not need to give USER32.DLL on Windows to your users because you can pretty much expect that it will be there.
Nowadays the only equivalent on Linux is the X libraries, anything else is either not guaranteed to be there now, or not guaranteed to be there in ~5 years because thanks to CADT people cannot stick with an API and feel the need to break everyone's programs to feel useful.