Skip to content
UdemySoftware DevelopmentPaid courseBeginner levelCertificate

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

icon
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

icon
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:

  1. Section 1:

    1. Problems associated with NOT using a build system

    2. Difference between a build system (Make) and a meta-build system (CMake).

  2. Section 2:

    1. Installation of CMake

    2. First executable using the CMake

  3. Section 3:

    1. Managing large projects using sub-directories

  4. Section 4:

    1. Variables, Lists, and Strings

    2. Scripting Capabilities of CMake

  5. Section 5:

    1. Flow Control commands (If-else commands and the Loops)

    2. Functions, Scopes, Macros, Modules, and Listfiles.

  6. Section 6:

    1. Configuring a project using Cache Variables

    2. Concept of Libraries

    3. Using Ninja Build System with CMake

  7. Section 7:

    1. Installation a package that is developed by someone else

    2. Export our package so that someone else can use it

  8. Section 8:(Read through Section)

    1. Miscellaneous small concepts, FAQs and tips

  9. Section 9:

    1. Problems while installing and using External Libraries

    2. 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.

icon
Udemy Discount

The discount is applied through our link. Open the course from here and Udemy's current promotional price is applied at checkout on most courses, no code to type.

Some courses are excluded from Udemy's promotions. If the price does not drop, clear your browser cookies and use the button again.

icon
Instructor Details

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

icon
More Software Development courses

$10.99

$109.99

$19.99

$19.99

$94.99

$94.99

icon
Reviews

4.5

2,641 ratings on Udemy

Select a bar to show only those reviews.Select the bar again to show every rating.

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?

Showing all 10 reviews on CourseDuck

Read all 2,641 reviews on Udemy

icon
Quality Score

No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.

Content Quality
/
Video Quality
/
Qualified Instructor
/
Course Pace
/
Course Depth & Coverage
/

Overall Score : 90 / 100