CMake Training
This CMake training covers how to efficiently write CMake scripts for small to larger projects along with best practices. This training also provides an overview of unit testing with CTest, packaging with CPack and continuous integration with CDash.
This training mixes theory and application with a set of tutorials and exercises.
Objectives
- Understand the basics of CMake (variables, cache, flow, etc.)
- Learn the best practice of Modern CMake
- Configure simple and complex projects with CMake
- Learn about the companion CMake tools: CPack, CTest and CDash
Prerequisites
- C/C++ : Basic knowledge
Agenda
This course covers 12 hours of material, which can be divided into shorter sessions around your availability.
Our Recommendation: For onsite courses, we recommend one 8-hour day of instruction (morning and afternoon sessions with a lunch break) and one 4-hour day, or three 4-hour sessions on consecutive days. For an online course, we can accommodate a variety of schedules, including 2 to 4-hour sessions held on consecutive days, or over the course of 2 or more weeks. We can also accommodate once a week sessions over the course of 3 or more weeks.
Getting started with CMake
- CMake’s major features
- CMake configuration workflow
- Running CMake
Setup 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
Modern CMake
- Generator expressions
- Installing targets
- Tips to improve your CMake scripts
Companion tools
- Writing tests with CTest
- Coverage and dynamic analysis
- Overview of CDash
- Introduction to the packaging tool: CPack
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
test