CMake Training

This CMake training covers in depth how CMake works and how to efficiently write CMake scripts for small to larger projects. The second part of the training covers unit testing with CTest, packaging with CPack and continuous integration with CDash.

This CMake training mixes theory and application with a set of tutorials and exercises.

cmake training logo


  1. Configure simple and complex projects with CMake
  2. Understand the basics of CMake (variables, cache, flow, etc.)
  3. Experiment unit testing with CTest
  4. Package full applications with CPack
  5. Setup a continuous integration platform with CDash
  6. Quickly get up to speed with the various tools: CMake, CPack, CTest and CDash


C/C++ : Basic knowledge

Day 1

  • Getting Started with CMake
    • CMake history
    • Use the tool to configure projects in a totally cross platform manner
    • CMake’s major features
    • CMake pipeline configuration
  • Setup projects with CMake
    • CMake syntax: variables, cache usage, and workflow management
    • Use of modules, external packages management, system configuration and installation commands
    • Understand the system’s introspection
    • Pass parameters to the compiler and write specific commands (macros, functions)
  • Installation of libraries
  • Packaging with CPack
    • Introduction to the packaging tool: CPack (provided with CMake)
    • Quickly and efficiently package applications on multiple platforms: Windows, Mac, Linux (Debian installers and Yum)
  • Writing unit tests with CTest
    • Advanced presentation of the tool handling unit tests: CTest
    • Quickly and easily test applications and algorithms
    • Coverage and dynamic analysis
    • Integration of CTest with other testing framework

Day 2

  • CMake Modern Best Practices
    • How to convert legacy CMake to modern CMake
    • Best practices with the target-based approach
    • Dealing with internal and external libraries
  • Advanced CMake
    • Advanced CMake command for efficient compilation
    • Concept of cross-compilation
    • Cross-compilation
    • Tips to improve your CMake scripts
  • Continuous Integration with CDash
    • Implement a continuous integration system prototype
    • Send unit tests to the CDash website
    • Maintains a global overview of the software quality
    • Unique CDash features: code coverage, memory analysis, client configuration

This training course will be taught in English. Course notes are also in English.
Participants are asked to bring a laptop computer for this training session.
The instructor will communicate all the specifications required to each participants before the training session.

Lunch is included.

Kitware SAS is registered as a training center in France


Practical Information

Duration: 2 days
Next training Date: June 14-15, 2021
Location: Online
Price: 1 500€

Company Training

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

About the instructor

Julien Jomier image

Julien Jomier is currently directing Kitware’s European subsidiary in Lyon, France (Kitware SAS), where he focuses on European business development.

Julien received both his B.S. and M.S in Electrical Engineering and Information Processing in 2002 from the ESCPE-Lyon (France) and an M.S. in Computer Science from The University of North Carolina at Chapel Hill (UNC) in 2003. He worked on a variety of projects in the areas of parallel and distributed computing, mobile computing, image processing and visualization.

Julien is one of the main developers of CDash and a contributor to CMake and CTest. Julien is also an active developer and user of VTK and ParaView. Julien has more than 10 years’ experience in visualization and image processing and has taught numerous training classes on ITK, VTK, ParaView and CMake at several major conferences and companies all over the world.