Building Portable C++ Packages: The Curse of Abundance

By Piotr Gaczkowski

Some people believe that freedom of choice is the best thing we can get. If you’ve built a few C++ projects in your lifetime you may have experienced the freedom of choice: Makefile, autotools, shell scripts, Waf, Bazel, Maven, QMake, CMake, …​! This buffet is much more than any single person can eat!

When building Songcorder, a vinyl-to-digital converter, I had to integrate libraries built with a combination of Makefiles, Waf, CMake, and Conan. And to make them work on Linux, Mac, and Windows. With a nice CI/CD pipeline. I came up with a fusion dish that neither looks or tastes very good. But at least it satisfies the hunger.

I’ll share with you some of my insights into the current landscape of build tools and what I learned on this journey.

Your Privacy

By clicking "Accept Non-Essential Cookies" you agree ACCU can store non-essential cookies on your device and disclose information in accordance with our Privacy Policy and Cookie Policy.

Current Setting: Non-Essential Cookies REJECTED

By clicking "Include Third Party Content" you agree ACCU can forward your IP address to third-party sites (such as YouTube) to enhance the information presented on this site, and that third-party sites may store cookies on your device.

Current Setting: Third Party Content EXCLUDED

Settings can be changed at any time from the Cookie Policy page.