You’re correct, bake is not designed to accommodate every possible kind of build setup or configiration. I made a conscious decision to favor simple, self-contained projects that produce a single binary vs. CMake where multiple binaries can be generated from a single source directory.

Bake instead puts the emphasis on a workflow with lots of projects. Projects are automatically “published” to a self-contained directory structure in a user’s home directory from which bake can automatically discover projects based on a canonical name (e.g. “foo.bar”). All of this makes building large dependency trees trivial. So while individual projects are simpler, dealing with many of them is easier than typical build systems.

Regarding software packaging, bake doesn’t integrate with any of the aforementioned tools. However, bake can be easily used in conjunction with those (and it has been) where a user simply takes the bake directory structure with all the projects and zips it up into a deb or rpm. This directory structure also contains resources like HTML files, images etc, and bake facilitates locating these project-specific files even as this directory structure moves around.

While I’ve been using it for pretty much all my personal projects, I do recognize that there are still a lot of improvements that can be made to bake that would make it a better fit for large-scale single projects. The only thing holding back those improvements is how much spare time I have :)

I write lots of code.

I write lots of code.