Learn CMake from the Expert Developers
Build faster, more reliable, cross-platform software.
CMake is powerful, but getting it right isn’t always easy.
Many teams struggle with slow builds, fragile configurations, and workflows that are difficult to maintain. Often, these issues come down to how CMake is set up and used.
This course teaches you how to use modern CMake effectively.
Led by the developers who build and maintain CMake, this training course focuses on practical, real-world applications—not theory.
You will learn how to:
- Build reliable, portable software across platforms.
- Reduce build times and avoid unnecessary rebuilds.
- Use modern, target-based CMake effectively.
- Debug, test, and package your software with confidence.
One Course. Three Sessions.
This is a complete CMake training program structured into three sessions. Designed as a complete learning path, the course takes you from foundational concepts to modern best practices to advanced workflows.
Most participants choose to attend all three sessions to gain a comprehensive understanding of modern CMake.
If you’re looking to focus on a specific area, each session can also be taken individually based on your experience and goals.
Agenda
Foundations of CMake
If you are new to CMake or working with builds that feel inconsistent, this is where to start.
You will learn how CMake works, how to structure projects correctly, and how to avoid common mistakes that lead to fragile builds.
Best for:
- New CMake users
- Teams with inconsistent or hard-to-maintain builds
You will learn how to:
- Understand core syntax, variables, and workflows
- Confidently configure and generate builds
- Build simple, portable CMake projects
Agenda:
- Getting Started with CMake
- Major features
- Configuration workflow
- Running CMake
- Setting Up Projects with CMake
- CMake syntax: variables, cache, and flow management
- Building libraries and executables
- Overview of Modern CMake’s target-centric approach
- Tips to speed up your builds
- Live Q&A
- Interactive learning with CMake developers
- Opportunity to ask questions specific to your use case
By the end of this session, you’ll have a clear understanding of how to structure and build reliable CMake projects from the ground up.
Modern CMake Best Practices
Many teams struggle to use CMake effectively. This part focuses on modern, target-based approaches that improve performance, maintainability, and scalability.
If your builds are slow, difficult to manage, or full of workarounds, this is likely your starting point.
Best for:
- Teams maintaining existing CMake projects
- Developers ready to modernize their build systems
You will learn how to:
- Use target-based architecture correctly
- Manage dependencies without unnecessary complexity
- Improve build performance and structure
Agenda:
- Applying Modern CMake
- Generator expressions
- Installing targets
- Tips to improve your scripts
- Companion Tools
- Writing tests with CTest
- Coverage and dynamic analysis
- Overview of CDash
- Introduction to the packaging tool, CPack
- Live Q&A
- Interactive learning with CMake developers
- Opportunity to ask questions specific to your use case
By the end of this session, you’ll know how to modernize your build system and eliminate common performance and maintenance issues.
Advanced Topics and Tooling
As projects grow, build systems tend to become harder to manage.
In this final part, you’ll learn how to standardize workflows, reduce manual effort, and ensure your build system supports production-level requirements.
Best for:
- Advanced users
- Teams with CI/CD, packaging, or cross-compilation needs
You will learn how to:
- Implement testing with CTest
- Package software with CPack
- Handle cross-platform and advanced configurations
Agenda:
- Modern CMake
- Importing and exporting targets
- CMake’s policy system
- External project & FetchContent
- Noteworthy changes from recent CMake releases
- Advanced Topics
- MPI support
- CUDA support
- Cross compilation
- Fortran support
- Live Q&A
- Interactive learning with CMake developers
- Opportunity to ask questions specific to your use case
Pricing & Registration
You can register for one or multiple sessions during checkout.
| Session | Date | Advance Price | Standard Price |
|---|---|---|---|
| Session 1: Foundations | June 3rd, 1-5 PM ET | $399 until 5/20 | $499 |
| Session 2: Best Practices | July 1st, 1-5 PM ET | $399 until 6/17 | $499 |
| Session 3: Advanced Topics | August 5th, 1-5 PM ET | $399 until 7/22 | $499 |
| Session 1: Foundations | September 2nd, 1-5 PM ET | $399 until 8/19 | $499 |
| Session 2: Best Practices | October 7th, 1-5 PM ET | $399 until 9/23 | $499 |
| Session 3: Advanced Topics | November 4th, 1-5 PM ET | $399 until 10/21 | $499 |
Discounts may be available for returning participants | Student pricing available upon request. Contact Us