Skip to content

CMake

CMake is the de facto standard build system for C++ projects.

Here are a collection of recommended links, guides and talks on how to use it.

Getting Started

We recommend this guide to get started with CMake:

Or alternatively these two videos from Jason Turner:

It can also be helpful to take a look at a simple example CMake project:

If you are starting a new project check out our C++ Project Cookiecutter:

Official Documentation

The official CMake documentation is a very useful and complete source of reference information, for example if you want to look up the specific details of a particular command. It can also be a bit overwhelming, and doesn't have many examples of how to actually do things, so it is probably not the best place to start learning how to use CMake.

Best practices

For people already using CMake who would like to learn and apply modern CMake best practices to their C++ projects: - Effective Modern CMake - It's Time To Do CMake Right - Modern CMake for modular design, Mathieu Ropert: video, slides - More Modern CMake, Deniz Bahadir: video - Oh No! More Modern CMake, Deniz Bahadir: video

Advanced talks

For people writing C++ libraries: - Effective CMake, Daniel Pfeifer: video, slides - Deep CMake for Library Authors, Craig Scott: video, slides - Modern CMake Modules, Bret Brown: video