- 1. Compiling a single source file into an executable
- 2. Switching generators
- 3. Building and linking static and shared libraries
- 4. Controlling compilation with conditionals
- 5. Presenting options to the user
- 6. Specifying the compiler
- 7. Switching the build type
- 8. Controlling compiler flags
- 9. Setting the standard for the language
- 10. Using control flow constructs