Join 2.9 million developers at
Join 2.9 million developers at
LEARNING OBJECTIVES
- A deep understanding of the steps involved in the software build process
- Working knowledge of the automation process of complex tasks in the building project
- Familiarity with the different options available to build software
- Hands-on exposure to navigating through the project structure, scripts, and modules to build maintainable and clean solutions
- Hands-on practice with different CMake tools to configure, run, and generate test results
- Hands-on experience in applying the end-to-end CMake process to build, test, and package C++ projects
Learning Roadmap
2.
First Steps with CMake
First Steps with CMake
Look at transforming C++ source code into executables using CMake's automated build process.
IntroductionUnderstanding the BasicsCMake ToolsCMake Command: Generating a Project Build SystemCMake Command: Building a ProjectCMake Command: Other OperationsOther CMake ToolsNavigate the Project Files: Directory Structure and Cache VariableNavigate the Project Files: Configuration Files and PresetsDiscovering Scripts and ModulesChapter Wrap-up
3.
The CMake Language
The CMake Language
12 Lessons
12 Lessons
Work your way through essential CMake syntax, variable management, control structures, and useful commands.
4.
Setting Up Our First CMake Project
Setting Up Our First CMake Project
10 Lessons
10 Lessons
Find out about setting up and optimizing your first CMake project with structured guidance.
5.
Working with Targets
Working with Targets
9 Lessons
9 Lessons
Deepen your knowledge of managing targets, properties, dependencies, and generator expressions in CMake.
6.
Compiling C++ Sources with CMake
Compiling C++ Sources with CMake
9 Lessons
9 Lessons
Investigate the complexities of C++ compilation, preprocessor and optimizer configurations, and efficient build management.
7.
Linking with CMake
Linking with CMake
8 Lessons
8 Lessons
Master linking in CMake, understanding files, libraries, symbol management, and testing techniques.
8.
Managing Dependencies with CMake
Managing Dependencies with CMake
10 Lessons
10 Lessons
Learn how to use CMake for managing external dependencies efficiently in C++ projects.
9.
Testing Frameworks
Testing Frameworks
10 Lessons
10 Lessons
Unpack the core of automated testing, CTest integration, and using Catch2 and GTest in C++.
10.
Program Analysis Tools
Program Analysis Tools
7 Lessons
7 Lessons
Work your way through program analysis tools for formatting, static checking, and dynamic analysis.
11.
Generating Documentation
Generating Documentation
4 Lessons
4 Lessons
Grasp the fundamentals of generating clear, modern documentation using Doxygen in CMake projects.
12.
Installing and Packaging
Installing and Packaging
13 Lessons
13 Lessons
Generate and manage C++ project installations and packages effectively using CMake and CPack.
13.
Creating Our Professional Project
Creating Our Professional Project
9 Lessons
9 Lessons
Tackle structuring, building, and managing dependencies for a professional CMake project.
15.
Appendix
Appendix
6 Lessons
6 Lessons
Learn how to use essential CMake commands for installation, string, list, file, and math operations.
Certificate of Completion
Showcase your accomplishment by sharing your certificate of completion.
Complete more lessons to unlock your certificate
Developed by MAANG Engineers
ABOUT THIS COURSE
Creating production-ready software is not a trivial task. A common issue developers face is the lack of coherent guidelines to build effective and elegant solutions. This course provides learners an end-to-end hands-on experience in building C++ solutions in a comprehensive manner.
You’ll start with the processes to use CMake in your projects. Next, you’ll learn about the automation of complex tasks including building, testing, and packaging. Then, you’ll learn how to form source directories, as well as build targets and packages. By the end of the course, you’ll know how to compile and link executables and libraries, how these processes exactly work, and how to optimize all steps to achieve the best results.
After taking this course, you’ll be able to effectively apply CMake and its associated tools to build, package, and test your C++ projects. You’ll also be able to make informed decisions on the selection of appropriate tool choices to configure, test, and report results of your projects.
ABOUT THE AUTHOR
Packt
A tech learning platform that provides online courses, eBooks, videos, and other resources to help individuals and organizations stay ahead of emerging and popular technologies.
Trusted by 2.9 million developers working at companies
A
Anthony Walker
@_webarchitect_
E
Evan Dunbar
ML Engineer
S
Software Developer
Carlos Matias La Borde
S
Souvik Kundu
Front-end Developer
V
Vinay Krishnaiah
Software Developer
Built for 10x Developers
No Passive Learning
Learn by building with project-based lessons and in-browser code editor


Personalized Roadmaps
The platform adapts to your strengths & skills gaps as you go


Future-proof Your Career
Get hands-on with in-demand skills


AI Code Mentor
Write better code with AI feedback, smart debugging, and "Ask AI"




MAANG+ Interview Prep
AI Mock Interviews simulate every technical loop at top companies


Free Resources