CMake from Zero to Hero
What you'll learn
- Understand the basics of CMake
- Learn how to organize your project's structure, install and export it
- Use 3rd party libraries
- Testing features of CMake (CTest)
- Basic C++ knowledge
- No CMake experience is needed
This course is for C++ developers and computer science students and it helps with the frustration of learning CMake by providing a structured way of doing it, using small "Hello World"-like examples and some real world examples as well.
If you're like me, you were frustrated because there is no structured tutorial that goes beyond the absolute basics. Maybe you even hated CMake, like a lot of programmers. This will be taken care of, because this is a structured learning path, and we will cover some of the most frequently used features of CMake.
No prior experience with CMake is needed, but basic C++ is needed. Just the basics, nothing fancy.
I've been a professional software developer for more than 10 years now. I've also been a trainer in one of my jobs. I noticed that it's better to take a hands-on approach and I encourage you to do the same with this course. Play around with the examples. Break them. See what happens.
What you'll get out of this:
CMake is cross-platform
It's in a lot of open-source projects, (maybe even your work projects) which you'll understand better
Simple, easy to follow examples, some of them inspired by real projects
Write your own CMake projects:
Use 3rd party libraries
Mostly Linux examples, some Windows ones
Windows setup in CLion, Visual Studio, the command line + cmake-gui
Here's a rough outline of the course, but please look at the curriculum on this page:
Structuring your projects
Testing with CTest
Who this course is for:
- C/C++ developers/students interested in CMake
I am a passionate software developer. I've been a professional programmer for 9 years now.
In one of my previous jobs, I also worked as a trainer for new recruits.
Co-author of a research paper (2014): Towards the Impact of Design Flaws on the Resources Used by an Application.
My top languages are C++ and Java.