Learning CMake Training Course

Overview

CMake is an open source tool for managing the development lifecycle of software through a compiler-independent method. Using CMake, users can create several builds from the same source code without affecting the source code.

This instructor-led, live training (online or onsite) is aimed at software engineers who wish to use CMake to automate the build process in a cross-platform environment.

By the end of this training, participants will be able to:

  • Build, test, and package software with CMake.
  • Control the software compilation process.
  • Use CMake in conjunction with a native build environment.
  • Address common build system issues.

Format of the Course

  • Interactive lecture and discussion.
  • Lots of exercises and practice.
  • Hands-on implementation in a live-lab environment.

Course Customization Options

  • To request a customized training for this course, please contact us to arrange.

Requirements

  • C++ programming experience

Audience

  • Software Engineers

Course Outline

Introduction

CMake Overview

  • What is CMake?
  • CMake features
  • CMake architecture

Preparing the Development Environment

  • Installing and configuring CMake

CMake Quick Start

  • Adding a version number and configured header file
  • Enabling support for C++
  • Building and testing

Libraries

  • Adding libraries
  • Adding usage requirements

Installing and Testing

  • Working with install rules
  • Testing the application

System Introspection

  • Adding system introspection
  • Specifying compile definitions

Advanced CMake

  • Adding custom command line and generated files
  • Building installers
  • Adding dashboard support
  • Fusing static and shared
  • Working with generated expressions

Debugging

  • Packaging debug and release

Deploying the Application

  • Adding export configuration

Securing the Application

  • Hardening CMake builds

Troubleshooting

Summary and Conclusion

Leave a Reply

Your email address will not be published. Required fields are marked *