Modernizing a legacy CMake build-system
CMake tends to have a bad reputation for being to complex and convoluted, but often that notion stems from very old versions of CMake. Sure, CMake is a Turing-complete scripting language, but that is really needed for an ecosystem as complex as that of C and C++. And as Greenspun’s tenth rule of programming goes: There are countless build-systems and build-system generators for the C/C++ ecosystem. Some of them tried to use a simple, declarative approach.