A compelling idea, but cmake writing endif(), find_package() being the equivalent of ‘from package import *’, and CXX automatically getting re-named to CMAKE_CXX_COMPILER is just bad design. There’s no deeper idea to explore. The system is just ugly and confusing.

I’ve been reading through https://cliutils.gitlab.io/modern-cmake/README.html to try and get my head around CMake best practices and the book is just line after line of “Don’t do it the old way or the obvious way, because you will end up accidentally doing the wrong thing due to A Hidden Footgun.” That’s bad design*!

We can use LLM to read and write cmake as well. They are all Turing machines anyway.