Skip to content
Home/ CMake Best Practices - Second Edition: Upgrade your C++ builds with CMake for maximum efficiency and
CMake Best Practices - Second Edition: Upgrade your C++ builds with CMake for maximum efficiency and

CMake Best Practices - Second Edition: Upgrade your C++ builds with CMake for maximum efficiency and

No customer reviews yet ISBN 9781835880647

Discover practical tips and techniques for leveraging CMake to optimize your software development workflow

Key Features:

- Master CMake, from basics to advanced techniques, for seamless project management

- Gain practical insights and best practices to tackle real-world CMake challenges

- Implement advanced strategies for optimizing and maintaining large-scale CMake projects

- Purchase of the print or Kindle book includes a free PDF eBook

Book Description:

Discover the cutting-edge advancements in CMake with the new edition of CMake Best Practices. This book focuses on real-world applications and techniques to leverage CMake, avoiding outdated hacks and overwhelming documentation.

You'll learn how to use CMake presets for streamlined project configurations and embrace modern package management with Conan 2.0. Covering advanced methods to integrate third-party libraries and optimize cross-platform builds, this updated edition introduces new tools and techniques to enhance software quality, including testing frameworks, fuzzers, and automated documentation generation. Through hands-on examples, you'll become proficient in structuring complex projects, ensuring that your builds run smoothly across different environments. Whether you're integrating tools for continuous integration or packaging software for distribution, this book equips you with the skills needed to excel in modern software development.

By the end of the book, you'll have mastered setting up and maintaining robust software projects using CMake to streamline your development workflow and produce high-quality software.

What You Will Learn:

- Architect a well-structured CMake project

- Modularize and reuse CMake code across projects

- Use the latest CMake features for presets and dependency management

- Integrate tools for static analysis, linting, formatting, and documentation into a CMake project

- Execute hands-on cross-platform builds and seamless toolchain integration

- Implement automated fuzzing techniques to enhance code robustness

- Streamline your CI/CD pipelines with effective CMake configurations

- Craft a well-defined and portable build environment for your project

Who this book is for:

This book is for software engineers and build system maintainers working with C or C++ who want to optimize their workflow using CMake. It's also valuable for those looking to enhance their understanding of structuring and managing CMake projects efficiently. Basic knowledge of C++ and general programming is recommended to fully grasp the examples and techniques covered in the book.

Table of Contents

- Kickstarting CMake

- Accessing CMake in the Best Ways

- Creating a CMake Project

- Packaging, Deploying, and Installing a CMake Project

- Integrating Third-Party Libraries and Dependency Management

- Automatically Generating Documentation

- Seamlessly Integrating Code Quality Tools with CMake

- Executing Custom Tasks with CMake

- Creating Reproducible Build Environments

- Handling Distributed Repositories and Dependencies in a Super-Build

- Creating Software for Apple Systems

- Cross-Platform-Compiling Custom Toolchains

- Reusing CMake Code

- Optimizing and Maintaining CMake Projects

- Migrating to CMake

- Contributing to CMake and Further Reading Material

About the author

Product details

Pub dateAug 30, 2024
ISBN-101835880649
ISBN-139781835880647
LanguageEnglish
Last updated 2026-09-13 07:17
$39.10 $41.99 6% off
You save $2.89 · list price $41.99
In stock — ships in 24 hours with free tracking
Delivery by Monday, October 5, 2026
Qty
Sign in to Add to Saved list
Free delivery on orders over $35.
15-day returns. Any reason.
Secure checkout. We never store card details.