Build Systems For C++ Build Systems Build Systems
CMake
Seems to be(come) the de-facto standard in the C++ world.
- available on a lot of platforms
- lot of tutorials, resources, etc.
- used as project model by some IDEs
- can be slow at times
- carries a lot of technical debt
- clumsy syntax
GNU Make
Quite OK for small projects. Every C++ programmer should know how to use Make.
- ubiquitous, portable
- a lot of limitations
- not very expressive syntax
Build2
- uniform across platforms, no project generation step
- supports wildcard patterns
- support for C++ Modules
- support for cross-compilation
- skips recompilation of ignorable changes (comments, whitespaces, etc).
- dependency management
- no dependencies, only C++ compiler required
MSBuild
- command-line based build system from Microsoft
- packaged with Visual Studio, but also available as stand-alone application.
- XML-based build files
- supported by , Embarcadero C++Builder
SCons
- automatic dependency analysis
- uses a real programming language (Python) for config files
- pretty verbose; even common tasks require a lot of code
- can be slow for big projects
Bear (Build Ear)
tool for generating compilation databases (compile_commands.json) for clang tooling and/or LSP language servers
Comments…