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
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
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.
Managing C++ Projects Using CMake
Writing a CMakeLists File
Creating the bare minimum CMakeLists.txt file and build up to a project with an executable and a library, learning the fundamental commands along the way.
Practical DSA
Cuckoo Hashing and Filters
Implement strict guarantees by bounding a lookup to exactly two memory locations, and build a fast rejection path for massive databases.