Advanced C++: Building Projects with CMake
1h 54mAdvanced2025-05-22
Authors

Károly Nyisztor
Mobile Developer, Instructor
Course details
This advanced course on CMake for C++ is designed to equip experienced C++ developers with the skills required to build and manage complex projects more effectively. Explore the essentials of CMake from the ground up, gaining hands-on experience with setting up, configuring, and optimizing build environments. Join instructor Károly Nyisztor as he covers everything from integrating third-party libraries to writing cross-platform scripts, with an emphasis on automation and scalability. By the end of this course, you’ll be prepared to use CMake to streamline the build process, improve efficiency, and handle complex project structures in any professional setting.
Learning objectives
Set up and configure CMake to manage C++ projects of varying complexity.
Write and manage cross-platform CMake scripts to support building on different operating systems.
Integrate external libraries into C++ projects using CMake, simplifying dependencies and project structure.
Utilize CMake to automate the build, testing, and packaging processes for C++ applications.
Troubleshoot and optimize CMake configurations for efficiency and scalability in large codebases.
Learning objectives
Set up and configure CMake to manage C++ projects of varying complexity.
Write and manage cross-platform CMake scripts to support building on different operating systems.
Integrate external libraries into C++ projects using CMake, simplifying dependencies and project structure.
Utilize CMake to automate the build, testing, and packaging processes for C++ applications.
Troubleshoot and optimize CMake configurations for efficiency and scalability in large codebases.
Skills covered
C++AdvancedProgramming LanguagesOpen SourceSoftware Development
Concepts
0. Introduction
- 01 - Advanced C++ - Building projects with CMake
1. Build Systems
- 02 - Why use a build system
- 03 - Why use CMake
2. CMake Fundamentals
- 04 - Setting up CMake
- 05 - Getting familiar with CMake
- 06 - What will be built in this course
3. Building Our CMake Project
- 07 - Creating custom commands and targets in CMake
- 08 - Integrating the core and filter libraries
- 09 - Adding external dependencies
- 10 - Creating custom targets
- 11 - Defining custom commands to generate output
- 12 - Pre-build and post-build commands
4. Advanced CMake Scripting
- 13 - Refactoring with functions and macros
- 14 - Target and directory-level properties
- 15 - Using generator expressions
- 16 - Handling build configuration-specific behavior
- 17 - Practical example - Implementing a debug only logging system
5. Managing Dependencies and Integrations
- 18 - Managing external libraries using FetchContent
- 19 - Advanced FetchContent options
- 20 - Platform-specific integrations
- 21 - Finding libraries and packages
- 22 - Conditionally including libraries based on platform
6. Build Automation with CMake
- 23 - Automating build tasks
- 24 - Managing build configurations
- 25 - Automated testing
- 26 - Continuous integration considerations
Next Steps
- 27 - Where to go from here
Related courses
- C++: Advanced Topics (2018)
- Developing Distributed Applications with C# and ZeroMQ
- Training Neural Networks in C++
- Training Neural Networks in C++ (2021)
- Raspberry Pi: GPIO
- Advanced Python: Build Hands-On Projects with Design Patterns (2023)
- Angular: Building Large Applications (2018)
- Project Management for Creative Projects
Related learn paths
- Get Started with PHP
- Advance your Node.js Skills
- Understanding Generative AI for Tech Leaders
- Advance Your Skills in C++
- Elevating C# Skills: Building Robust Applications
- Design and Present Your Cloud Strategy
- Strategic Execution and Business Impact for Senior Executives
- Essential Skills in Generative AI for Creatives