Complete Cmake Project Management [2023]
Published 2/2023
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 1.62 GB | Duration: 3h 7m
Published 2/2023
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 1.62 GB | Duration: 3h 7m
Learn CMake to manage your next project! As well as how to manage dependencies and cross-compile to other platfroms.
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.
Overview
Section 1: Introduction
Lecture 1 Promo
Lecture 2 Welcome - Watch this first!
Lecture 3 FAQ
Lecture 4 Course Overview
Section 2: Setup
Lecture 5 Installing (Windows)
Lecture 6 Software used in the course
Section 3: Prerequisites
Lecture 7 Introduction
Lecture 8 Compile & Link Process
Lecture 9 Non-CMake Project Setup (Windows)
Lecture 10 The Role of CMake
Lecture 11 Basics of the Command Line
Section 4: First Contact
Lecture 12 IDE Selection
Lecture 13 More about IDEs
Lecture 14 Hello, CMake!
Lecture 15 Summary on "First Contact"
Section 5: The CMake Language
Lecture 16 Commands & Arguments
Lecture 17 Variables
Lecture 18 Useful CMake Built-in Variables
Lecture 19 Conditions
Lecture 20 Loops
Lecture 21 Functions & Macros
Lecture 22 Function Arguments Advanced
Lecture 23 Including CMake Files
Lecture 24 Summary on "The CMake Language"
Section 6: Building Projects
Lecture 25 Building with CMake
Lecture 26 Targets
Lecture 27 Structuring Project Into Subdirectories
Lecture 28 Globbing Patterns
Lecture 29 Looping & Examples
Lecture 30 Options & Cache
Lecture 31 Clearing the cache
Lecture 32 CMake GUI
Lecture 33 Precompiler Definitions
Lecture 34 Compiler and Linker Flags
Lecture 35 CMake Toolchains
Lecture 36 Summary on "Building Projects"
Section 7: Dependency Management
Lecture 37 Add Dependencies As Subdirectories
Lecture 38 Add Dependencies Using FetchContent
Lecture 39 Using Microsoft's VCPKG
Lecture 40 Linking Separate Libraries
Lecture 41 Summary on "Dependency Management"
Section 8: Compiling for the Web
Lecture 42 Working with Emscripten
Lecture 43 Emscripten Toolchain & Other Toolchains
Lecture 44 Summary on "Compiling for Web"
Section 9: Running Tools
Lecture 45 Creating Custom Targets
Lecture 46 Custom Commands
Lecture 47 C++ Code as Part of the Build
Lecture 48 Python scripts as Part of the Build
Lecture 49 Running CMake in "Script Mode"
Lecture 50 Configure Step Execution
Lecture 51 Summary on "Running Tools"
Section 10: Testing & CTest
Lecture 52 How to use CTest
Lecture 53 How to use Catch2 Test Framework
Lecture 54 How to use GoogleTest Test Framework
Lecture 55 Test as a Build Step
Lecture 56 Summary on "Testing & CTest"
Section 11: Installation & CPack
Lecture 57 Installing a Project
Lecture 58 Packing a Project
Lecture 59 Summary on "Installation & CPack"
Section 12: Advanced Recipes
Lecture 60 Configure File
Lecture 61 Find Program
Lecture 62 CppCheck
Lecture 63 Graphviz
Lecture 64 GitSubmodules
Lecture 65 Source Groups
Lecture 66 CCache & CMake
Lecture 67 Easy Copy Data
Lecture 68 Bonus Materials
New or experienced C/C++ developers,DevOps individuals who want to learn more about C/C++ project management