Master CMake for Cross-Platform C++ Project Building (Udemy.com)
Learn the most powerful and recommended way of building the C++ projects
Created by: Milan Yadav
Last updated January 2022
What you will learn
- CMake Commands and Terminologies
- Importance of Make and CMake
- Importing and Exporting Packages
- CMake's Scripting Mode
- Configure Project Building using Cache Variables
- Linking against External Libraries
How it compares
Against the other 518 rated Udemy courses in Software Development on CourseDuck:
- Rating4.5 out of 5higher than 41% of them
- Reviews2,641#70 of 519 by number of reviews
- Length3.5 hoursshorter than 74% of them
- Last updatedJanuary 2022earlier than 85% of them
Course Description
Learning CMake was never so easy!
Welcome to the course Master CMake for Cross-Platform C++ Project Building, where you will learn the CMake tool from the beginning. After completing this course, you'll be able to
Build CMake based projects,
Export your project, and
Link your executable against any CMake/ Non-Cmake based library
Enroll Now and enjoy the 3.5-hours ride to learn the most powerful way of building the C++ projects.
This course is made after extensive research on Stackoverflow, Quora, Reddit, Youtube, and other Q&A websites to handpick the concepts which are difficult to understand for the beginners. The course starts with compiling a simple C++ code; and, over the modules, various functionalities are added as the complexity increases.
The broad outline of the course is as follows:
Section 1:
Problems associated with NOT using a build system
Difference between a build system (Make) and a meta-build system (CMake).
Section 2:
Installation of CMake
First executable using the CMake
Section 3:
Managing large projects using sub-directories
Section 4:
Variables, Lists, and Strings
Scripting Capabilities of CMake
Section 5:
Flow Control commands (If-else commands and the Loops)
Functions, Scopes, Macros, Modules, and Listfiles.
Section 6:
Configuring a project using Cache Variables
Concept of Libraries
Using Ninja Build System with CMake
Section 7:
Installation a package that is developed by someone else
Export our package so that someone else can use it
Section 8:(Read through Section)
Miscellaneous small concepts, FAQs and tips
Section 9:
Problems while installing and using External Libraries
Using External Libraries developed using both CMake and Non-CMake based build systems
Enroll Now and enjoy the 3.5-hours ride to learn the most powerful way of building the C++ projects.
Instructor Details
- 4.5 Rating
2,641 Reviews
Milan Yadav
Robotics, Sensors, Deep Learning, and High Performance Computing are my current research areas. While working on these fronts, I have developed an expertise in C, C++, Python, Bash, and MATLAB programming languages.
I have graduated with a master’s degree in Control and Computing from IIT Bombay, India.
My course at Udemy focusses on the above mentioned programming languages, or my research areas. Since the topics I deal with are sometimes intimidating for the beginners to learn, I follow the step-by step method for explaining why each step needs to be carried out.
Enroll to my courses if want to get to the core of the most recent technical topics.
Contact: milanscourse@gmail.com
More Software Development courses
MATLAB Programming Simulink: Beginner to Pro with ChatGPT (2026)
5.0 (930 Reviews)
Provider: Udemy
Time: 9.6h
$10.99
Build Web Apps with Nuxt.js 3: Master TypeScript & API [New] (2026)
4.9 (635 Reviews)
Provider: Udemy
Time: 6.7h
$19.99
Terraform 101: The Ultimate Hands-On Guide [Azure Edition] (2025)
4.8 (1,975 Reviews)
Provider: Udemy
Time: 11.9h
$94.99
Reviews
By Joel Charbonnet on 12/31/2025
The course covered all the important aspects of CMake. It would have been nice if the quizes was directly from the actual material presented in the course. This course should have an introduction to installing CMake on the two major platforms, Windows and MacOS. These platforms use differenc compilers and make system than the ones presented in this course. It should be stated up from that the presentation for this course is all on Linux Ubuntu platform. Lucky for me I am familiar with Linux, so I installed Ubuntu on Windows WSL2.
By Martin Cote on 11/19/2022
Great course ! CMake is a software difficult to learn. Milan provides lots of great coding examples and explains special behaviors of CMake features. This helps a lot understanding what CMake does behind the scene. The lectures total length was about 3.5 hours at the time of writing this review; however these 3.5 hours cover a LOT of material. As a student, be ready to invest several more hours to re-write and test the code yourself to understand all the CMake functionalities covered in the course. Thank you Milan! :-)
By Abdul Mudabir Patel on 9/30/2022
This course is great from a Beginner's outlook, thank you! I also loved how the Milan Yadav made extra efforts by typing each exercise out in a module; compiling and executing programs throughout. I would like to offer some suggestions for this great course from my perspective: 1) Quiz questions can be more difficult. 2) This course should've shown CMake builds for much bigger projects, so as to bring out complexities involved in building large projects. Going by the Title for the Course, after completion of the course, I do not feel like I have mastered CMake, but I feel that this Course has given me the essential knowledge to migrate projects to CMake. Overall, I enjoyed this Course!
By Jonathan Lazzaro on 1/10/2022
I took this course because I am a novice with building C++ projects and I wanted to easily link in and embed Python code in C++. This course was perfect and I found the contents to be well-structured. I especially liked the section about linking external libraries.
By Ali Aydın Küçükçöllü on 9/18/2021
I was familiar the CMake wile working with ROS framework but I was not clear about what the syntax of CMakeLists.txt files comes and also structure of include directories. This course helped me about understanding what I am trying to do. Thanks!
By Arthur Lisboa on 6/19/2021
The course is thorough and starts from the basics as no other that I could find. I learned much and am pleased, even about some linking details in C++. I give it 4/5 stars because of two areas that could be better. 1. The author could have added one or two more complex examples as a last section to show unexpected, but common issues - f.e., syntax to use certain standard libraries. 2. The lessons are given in a foreign accent with minor grammar mistakes. They can still be understood, but the use of a native reviewer/narrator would have made the course experience better.
By Peter Ritter on 5/27/2021
Nice course! Well presented. However,there was no mentionof techniques to deal with lots if files. Normal projects have a lot more thant two files - sometimes dozens even hundreds. Listing them all manually is error prone. There are ways for cmake to automatically fetch .h .cpp file names from a directory. Also, I didn't see any mention of unit testing. Testing is a big part of development and there are probably ways to run unit tests after building. Would be nice if the author could add such info. Thank you.
By Andrea Soldi on 3/20/2021
I like this course but if you want to improve it for my opinion I have a couple of points to explore. Could be nice to have a kind of lab, hands on cmakefile like a online docker session with some files in it to experience cmake, or even something similar. I say a docker session to avoid missing files experience and or installation problems. Could be helpful also to have all the lecture slides to review the topics. Thanks.
By Glenn A. Mohan on 9/1/2020
Milan: I've learnt so much from this well organized and eloquently delivered course. I've made my own notes spanning 150 slides for reference and am sure I'll be back to review some of the sections. I'm happy to give this a 5/5 rating and encourage you to keep up the good work. Thank very much and best wishes to you! Best regards, Andrew
By Ziyuan Lin on 3/28/2020
I had little knowledge of CMake and this course is highly informative especially when the official CMake documentation is cryptic for me. Good coverage but I hope the course would talk about generator expression, testing, and what CMake will generate for Visual Studio ("cross-platform" as the title suggests). Also, maybe the instructor can show what's inside the -config.cmake file when introducing exporting packages?
Quality Score
No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.
Overall Score : 90 / 100



![Build Web Apps with Nuxt.js 3: Master TypeScript & API [New]](/programming/software-development/images/6457785_5adc_4.jpg?v=1789443959)

![Terraform 101: The Ultimate Hands-On Guide [Azure Edition]](/programming/software-development/images/6208847_f60a_7.jpg?v=1791193600)
