Catalogue
/
Software Engineering
/
Comprehensive CMake

Comprehensive CMake

Delve into the world of CMake with this comprehensive course. From an introduction to advanced techniques, participants will grasp project setup, cross-platform configuration, pipeline customizations, advanced integrations, and even the seamless incorporation of Conan.

Featuring hands-on examples and expert-led workshops, this course ensures proficiency in modern CMake practices, ensuring efficient and optimal project management.

What will you learn?

This course is designed to navigate participants through the intricate aspects of CMake. Starting with an introduction, attendees will quickly learn how to initiate projects and configure them across diverse platforms. The course elucidates CMake's major features, diving deep into syntax intricacies, variables, cache management, and much more. From crafting specific commands with macros to mastering the target-based approach, participants will acquire the skills to efficiently manage both internal and external libraries. Additionally, this course introduces the concept of cross-compilation, offering a practical take on the subject. Finally, for those looking to integrate Conan with CMake, a dedicated session ensures they can harness this combination effectively.

  • Master the foundational concepts and syntax of CMake for effective project setup across multiple platforms.
  • Gain expertise in modern CMake best practices, particularly the target-based approach and efficient library management.
  • Acquire skills in advanced CMake techniques, including handling transitive dependencies and optimizing compilation.
  • Understand the concept and practical application of cross-compilation using CMake.
  • Achieve proficiency in integrating the C++ package manager Conan with CMake for enhanced project management.

Requirements:

  1. Basic understanding of programming and project management.
  2. Familiarity with command-line tools and operations.
  3. Knowledge of fundamental programming concepts like compilers, libraries, and headers.
  4. Prior experience with any build system (e.g., Make, MSBuild) is beneficial but not mandatory.
  5. An understanding of software development lifecycle and practices.
  6. Ideally the participants would have some basic familiarity with C++, but this is not strictly necessary.

Course Outline*:

*We know each team has their own needs and specifications. That is why we can modify the training outline per need.

Introduction to CMake and Project Setup
Getting Started with CMake
  • Using CMake to configure projects across different platforms with examples
  • Overview of CMake's major features and their toggling
  • Configuring CMake pipeline: Architecture choices (32/64-bit), platforms (Windows, Linux, etc.), toolchain specifics (e.g., VS20XX)
Setting up Projects with CMake
  • Guided walkthrough: Creating various project types – executable, library (shared, static, header-only)
  • Referencing libraries: Crafting a find<>.cmake file
  • Understanding keywords: PUBLIC, PRIVATE, and INTERFACE
Diving Deeper into CMake Syntax
  • Variables, cache management, and efficient workflow practices
  • Integrating modules, managing external packages, configuring system, and installation commands
  • Passing parameters to compilers, crafting specific commands using macros and functions
Installing Libraries using CMake
Modern CMake Best Practices Overview
Advanced CMake Techniques and Integrations
CMake Modern Best Practices Continued
  • Mastering the target-based approach
  • Efficiently managing internal and external libraries
Advanced CMake Techniques
  • Handling transitive dependencies
  • Setting up and utilizing precompiled headers
  • Crafting and employing CMake functions
  • Debugging CMake files and troubleshooting common issues
Optimizing Compilation with Advanced CMake Commands
Cross-Compilation with CMake
  • Understanding the basic concept of cross-compilation
  • Deep dive into cross-compilation with practical examples
Enhancing Your CMake Scripts
  • Handy tips and tricks for refining your CMake scripts
Integrating Conan with CMake
  • Focused session on Conan/CMake combination, tailored for those utilising this combination regularly.

Hands-on learning with expert instructors at your location for organizations.

0
Graph Icon - Education X Webflow Template
Level: 
Intermediate
Clock Icon - Education X Webflow Template
Duration: 
14
Hours (days:
2
Camera Icon - Education X Webflow Template
Training customized to your needs
Star Icon - Education X Webflow Template
Immersive hands-on experience in a dedicated setting
*Price can range depending on number of participants, change of outline, location etc.

Master new skills guided by experienced instructors from anywhere.

0
Graph Icon - Education X Webflow Template
Level: 
Intermediate
Clock Icon - Education X Webflow Template
Duration: 
14
Hours (days:
2
Camera Icon - Education X Webflow Template
Training customized to your needs
Star Icon - Education X Webflow Template
Reduced training costs
*Price can range depending on number of participants, change of outline, location etc.

You can participate in a Public Course with people from other organisations.

0

/per trainee

Number of Participants

1 Participant

Thanks for the numbers, they could be going to your emails. But they're going to mine... Thanks ;D
Oops! Something went wrong while submitting the form.
Graph Icon - Education X Webflow Template
Level: 
Intermediate
Clock Icon - Education X Webflow Template
Duration: 
14
Hours (days:
2
Camera Icon - Education X Webflow Template
Fits ideally for individuals and small groups
Star Icon - Education X Webflow Template
Networking opportunities with fellow participants.
*Price can range depending on number of participants, change of outline, location etc.