Complete CMake Project Management [2023]
What you'll learn
- CMake
- Project Structure for C/C++
- Third-party package management
- Running your own tools on build
- Compiling for the web through Emscripten
- Including a test framework to your project
- Creating an installable package
- Bonus: More advanced code snippets
Requirements
- Understand C/C++
- Knowledge about basic programming concepts
Description
This course is all about CMake. CMake is an application that helps you structure C/C++ based native projects, generate build commands for the target platform, build your application, pack it into an installer, install it, test it, and it will even help you with managing your dependencies.
In this course, you will learn how to use CMake to structure and compile your C/C++ projects as well as how to manage your dependencies. I will talk about cross-platform development and even how to get your project compiled for the web using Emscripten. Then I will show you how to include unit tests and test your application. There is also a section on customizing the build pipeline with your own tools (if you want to do your own custom build steps). You will also be able to learn how to compile other projects that support CMake and even ones that do not. We will finish up with how to install and package your project.
In the end, you will have all the knowledge needed to be able to open up a random CMake project and compile it yourself. You will also be able to confidently start and write your own CMake scripts for your projects. This will elevate your programming experience with the low-level C/C++ languages and it will also simplify a lot of the hard concepts related to those languages.
Who this course is for:
- New or experienced C/C++ developers
- DevOps individuals who want to learn more about C/C++ project management
Instructor
I am a professional programmer. Currently, I am a Gameplay Programmer at Ubisoft but before that, I was a Technical Lead in a business company where I had the opportunity to work on various projects. I've also worked with many programming languages, concepts, and application architectures. I also have my own startup called Paper Cranes Ltd.
In my line of work, I've mentored and elevated many professionals to be experienced developers.