Summary
This chapter wraps up our long journey through CMake. Now you fully understand what problems CMake aims to solve and which steps are necessary to automate these solutions.
In the first three chapters, we explored all the basics: what CMake is and how users leverage it to bring raw source code to life, what the key components of CMake are, and what purpose different project files have. We explained the syntax of CMake: comments, command invocation, arguments, variables, and control structures. We've discovered how modules and subprojects work, what the correct project structure is, and how to work with various platforms and toolchains.
The second part of the book taught us about building with CMake: how to use targets, custom commands, build types, and generator expressions. We dove deep into the technicalities of compilation, and the configuration of a preprocessor and an optimizer. We discussed linking and introduced different library types. Then, we investigated...