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.

Early Bird Registration: Use the code CMAKETRAINING for a 20% discount. Expires Dec. 23.


  • 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


  • C/C++ : Basic knowledge


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

Practical Information

January 9, 2023, 1 pm to 5 pm EST
January 10, 2023, 1 pm to 5 pm EST
January 11, 2023, 1 pm to 5 pm EST
12 hours | Remote | English

$1080 through 12/23 (use early bird code)
$1350 after 12/23

Company Training

All our training can be offered on site with a custom agenda. Contact us for more information.

Contact Us

About the Instructor

Betsy McPhail

Betsy McPhail graduated from Union College with a Bachelor of Science in computer engineering with a mathematics minor in 2005. After working for a year as a programmer/analyst supporting hospital healthcare information systems, Betsy returned to school and earned her Master of Engineering in computer and systems engineering from Rensselaer Polytechnic Institute in 2007.

Learn More