I created a build system to replace cmake because I could not tolerate cmake anymore.
I feel that CMake originally started as a great idea. Which is to use lists to describe a build system.
Unfortunately that seems to be forgotten today,
to the point where the most intuitive and trivial operations are not possible.
So, I set out to basically create what I thought CMake should be.
CMakeLists.txt contains lists. It creates lists, changes lists, uses lists to make more lists. You know what else is a list? A command line. Everything your build system does is a command line. The only purpose of a build system is to prepare command lines better.
I had to decide using JSON or Lisp. Ultimately settled for JSON because I did plan to integrate with web ui's, and communicate in general.