Complete Cmake Project Management [2023]

Posted By: ELK1nG

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

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