Course Code: cmakebspk
Duration: 21 hours
Prerequisites:

-

Overview:

-

Course Outline:
1. What CMake really is? - it is build system or just a wrapper?
 
2. First CMake project - two commands, but what they do will blow your mind.
 
3. CMake variables - let's do this in different way than other programming languages.
 
4. CMake targets - base of modern CMake
 
5. Modern CMake project structure
 
6. Conditions in CMake - do you think that it is simple?
 
7. Generator expressions - hard syntax to read, but sometimes we need them.
 
8. Compiler definitions 
 
9. CMake cache - easy way of configuring your build
 
10. Environment variables.
 
11. Ways of providing sources to targets - pros and cons of many approaches
 
12. Loops
 
13. Functions & Macros - which one should be used mostly?
 
14. Extra function parameters - there is a time to praise the creators of CMake
 
15. Setting compiler flags - many ways to do that, which should we choose?
 
16. Custom targets and commands - how to avoid external scripting
 
17. Executing processes from CMake
 
18. Configuring files - powerful tool of generating files from patterns.
 
19. CMake installing - how to place artifacts in right place in right order
 
20. Finding and linking to external libraries - very popular, but sometimes tricky
 
21. Creating own find package mechanism - when CMake creators and third party provider failed
 
22. Exporting libraries - prepare your library or framework to be used in other projects
 
23. Cross compilation introduction
 
24. Dealing with dependencies - how to prevent your build system becoming a nightmare