Managing C++ Projects Using CMake
Relationships Between Targets
Learn about target types, and how the PUBLIC, PRIVATE, and INTERFACE keywords control how properties are shared.
Managing C++ Projects Using CMake
Build Servers and Continuous Integration
Learn how to automate your build and test process with Continuous Integration (CI) and a build server. This lesson provides a guide to creating a GitHub Actions workflow for a CMake project.
Managing C++ Projects Using CMake
Using Shared Libraries
Adding support for user-configurable library types and an initial introduction to target installation.
Managing C++ Projects Using CMake
Working with the File System
Exploring CMake's file() command, covering how to read, write, copy, and glob files, and how to manipulate paths.
Managing C++ Projects Using CMake
CMake Presets
Learn the fundamentals of CMake Presets. This lesson introduces CMakePresets.json to simplify complex build commands.
Managing C++ Projects Using CMake
User Presets and Inheritance
Learn to structure your CMake presets with inheritance and customize them for your local environment using CMakeUserPresets.json.
Managing C++ Projects Using CMake
The CMake Cache
Discover the CMake Cache, the mechanism for storing persistent user-configurable options, and learn how to create and manage cached variables.
Managing C++ Projects Using CMake
CMake Commands, Arguments, and Lists
Exploring CMake's command syntax and its list data type, including how to create, manipulate, and use lists in your projects.
Practical DSA
Cardinality and HyperLogLog
Trade exactness for memory efficiency. Learn how to calculate distributed cardinality at scale using HyperLogLog and hardware intrinsics.
Managing C++ Projects Using CMake
Managing Libraries and Dependencies
Learn to manage third-party libraries in C++, covering include/library paths, static vs. shared libraries, versioning, and platform differences.