It does seem that 'modern' idioms tend to just be doing the same thing in a more obfuscated manner. Just a .c/.h pair would have been easier to add to your source.
If you embed the source in your project, the terribleness is about adding to your Makefile:
funkylib.o: funkylib.c
$(CC) $<
myfinalexe: ... funkylib.o ...
# your existing executable creation (linking) commandI had no idea that cmake would do this, after reading quite a lot of things about cmake v.s. make and how to write various makefiles for them. I posit that the C build tools are fundamentally hard to comprehend.
Blindly trusting it will lead to the same outcome, regardless of the programming language ecosytem.
Besides that was just one example, there are plenty of them with turing complete languages.