Modern CMake

with Benjamin Beney in Lyon, France

March 18, 2019 (1 day long)

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


  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


  1. C/C++ : Basic knowledge


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)

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

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.

All Kitware training courses can be customized and held at Kitware's training centers (In the EU: Lyon, France; or in the US: Clifton Park, New York; Carrboro, North Carolina; Santa Fe, New Mexico) or at your own site (quotation).

Browse more courses
* VAT excluded.
A 10% discount (540 € VAT excluded) is applied for students.

Practical information

March 18, 2019

Current price: 600 €*

Register Contact us

About the instructor

Benjamin Beney joined the European Kitware team in Lyon as an R&D engineer in March 2014.  He received a Master in Computer Science specializing in image processing from the Claude Bernard University.

Benjamin’s technical knowledge in C/C ++, Java, OpenGL, Qt and OpenCV gives him a versatile profile to work on transverse projects at Kitware.

At Kitware, Benjamin works on projects developing mobile applications on Android and iOS as well as visualization applications on the web. Benjamin is also involved in the development of complex visualization applications based VTK and ParaView.

©2019 Kitware SAS. 6 Cours André Philip 69100 Villeurbanne, France, +33 (0)4 37 45 04 15