Comparing build systems
In this chapter, we tried to introduce three of the most well-known and widely used build systems. We also introduced CMake as a build script generator. You should know that there are other build systems that can be used to build C and C++ projects.
Note that your choice of build system should be considered as a long-term commitment; if you start a project with a specific build system, it would take significant effort to change it to another one.
Build systems can be compared based on various properties. Dependency management, being able to handle a complex hierarchy of nested projects, build speed, scalability, integration with existing services, flexibility to add a new logic, and so on can all be used to make a fair comparison. I'm not going to finish this book with a comparison of build systems because it is a tedious job to do, and, more than that, there are already some great online articles covering the topic.
A nice Wiki page on Bitbucket...