Modern CMake for C++ isn't just another reference book, or a repackaging of the documentation, but a blueprint to bridging the gap between learning C++ and being able to use it in a professional setting. It’s an end-to-end guide to the automation of complex tasks, including building, testing, and packaging software.This second edition is updated to the latest version of the CMake tooling suite, featuring three new chapters and an additional appendix dedicated to CMake presets.In this book, you'll not only learn how to use the CMake language in CMake projects, but also discover how to make those projects maintainable, elegant, and clean. As you progress, you’ll dive into the structure of source directories, building targets, and packages, all while learning how to compile and link executables and libraries. You’ll also gain a deeper understanding of how those processes work, and how to optimize builds in CMake for the best results.You'll discover how to use external dependencies in your project – third-party libraries, testing frameworks, program analysis tools, and documentation generators. Finally, you'll gain proficiency in exporting, installing, and packaging for internal and external purposes.By the end of this book, you'll be able to use CMake confidently at a professional level.