“Yet another one”.

Let me begin by saying that the reply that follows is in no way an attempt to change your mind. Build systems may be just about the most controversial topic amongst C/C++ coders, and anyone who’s been around long enough has made up his mind about them. And that’s fine with me.

Instead, let me try to answer the obvious and often asked question:

“Why yet another build system”

Not because I didn’t know other build systems. I have used plenty over the years (make, cmake, premake, meson, rake, colcon, bazel), and some I even enjoyed working with.

Not because other build systems don’t work or are badly designed. All of the aforementioned tools have been used in plenty of projects and they generally work just fine.

But most importantly: Not because I think anyone should stop using what they are using. If you have a build system that works, and you are happy with it, stick with it.

So why then?

The reason is simple: a few years ago I had to create a custom build system. I ended up liking it so much that I didn’t want to go back. It turned out I wasn’t the only one, and so I decided to fork it off into its own project.

Bake is quite different from any of the other C/C++ build systems. Bake projects have a well-defined structure which aligns with best C/C++ practices. That means you don’t have to reinvent the wheel for every new project, which is great, but it pays off in a lot of other ways too:

But perhaps the feature that makes the biggest difference is the bake environment. Bake automatically keeps track of the projects you’ve built, so that when you need to depend on them you can just use their logical name.

There are countless ways in which the bake environment has made my life easier. To name a few:

It is hard to convey how much time these features have saved me, and I don’t expect you to take my word for it either. All I can say is that it has made my coding life a hell of a lot easier. What should also be pointed out is that none of these features require any sort of configuration. Everything is seamlessly integrated in the bake workflow.

And this is just the tip of the iceberg. Some other tricks bake can do:

I probably didn’t convince you that bake is a good idea. You may think that these features have been addressed in one way or another with other build systems, or that these features should not be part of a build system at all!

And that’s okay. I will keep using bake because I like it and think it’s the easiest thing out there. You will keep using autotools because you like it and think its the easiest thing out there. No need to get upset about it :-)

--

--

--

I write lots of code.

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Sander Mertens

Sander Mertens

I write lots of code.

More from Medium

A Guide To The Wine Region of Fribourg In Switzerland

Post 1: My Words Are My Identity

Woodstock: How It Began