Project Lifecycle Management with the CMake Family of Tools

with TBD in Carrboro, North Carolina

October 20, 2014 (1 day long)

Learn how to create a build system for your C/C++/Fortran project using the popular CMake family of tools. In addition to building projects, CTest can be used to manage tests, and CPack can be used to automatically create professional installers. CDash can be used to create a continuous integration testing system. This course will give the attendees the knowledge to effectively use the CMake tools on a project.

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.


  1. Configure simple and complex projects with CMake

  2. Understand the basics of CMake (variables, cache, flow, etc.)

  3. Learn about new advanced features of CMake

  4. Experiment unit testing with CTest

  5. Package full applications with CPack

  6. Setup a continuous integration platform with CDash

  7. 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 completely 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

  • How to setup CDash@home

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

Practical information

October 20, 2014

Current price: $815

Register Contact us

About the instructor

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