Modern CMake

with Julien Jomier in Lyon, France

March 10, 2020 (2 days 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.

Objectives

  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


Prerequisites

  1. C/C++ : Basic knowledge

Program

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.

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 (864 € VAT excluded) is applied for students.

Practical information

March 10, 2020
(Early registrations end: February 25, 2020)

Standard price: 1 200 €
Current price: 960 €*

Register Contact us

About the instructor

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.

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