CMake?is a powerful and comprehensive solution for managing the software build process.
Examples of using ruslo/hunter package manager for an Android application. [```[BSD2]```][BSD-2-Clause]
CMake BASIS makes it easy to create sharable software and libraries that work together. [```[BSD2]```][BSD-2-Clause]
A huge CMake cookbook full of recipes. [```[MIT]```][MIT]
Example project which demonstrates various CMake features. [```[BSD3]```][BSD-3-Clause]
Useful CMake examples in a tutorial format. [```[MIT]```][MIT]
A collection of as simple as possible, modern CMake projects. [```[MIT]```][MIT]
Template for reliable, cross-platform C++ project setup using CMake. [```[LICENSE]```](https://github.com/cginternals/cmake-init/blob/master/LICENSE)
Installation example for a C++ project (Windows) with Cmake. ```[NO LICENSE]```
Short copy-pasteable CMake snippets. [```[BSD3]```][BSD-3-Clause]
Templates for creating C++ libraries and executables (including conan). ```[NO LICENSE]```
Template that aims to be a reference for modern CMake and CI. [```[MIT]```][MIT]
Boiler plate for C++ projects - tests, CI, coverage, docs. [```[UNLICENSE]```][UNLICENSE]
A template C++ repository, using CMake and Catch. ```[NO LICENSE]```
A C++14 template with CI, tests, code coverage, docs and static analysis integration. [```[CC0-1.0]```][CC0-1.0]
An OS-agnostic template project for exporting either shared, static or header-only C++ library, sporting ctest and CI support, written in plain CMake with line-by-line tutorial comments. [```[MIT]```][MIT]
Example of downloading/installing dependencies using ruslo/hunter package manager. [```[BSD2]```][BSD-2-Clause]
Minimal CMake template for Qt 5 projects. [```[LICENSE]```](https://github.com/euler0/mini-cmake-qt/blob/master/LICENSE)
Minimal CMake example, that covers dependencies and packaging. [```[CC0-1.0]```][CC0-1.0]
Best practices and proper usage of CMake by using targets. ```[NO LICENSE]```
A template for modern C++ projects using CMake, CI, code coverage, clang-format, reproducible dependency management, tests using doctest and much more. [```[UNLICENSE]```][UNLICENSE]
Config mode of find_package (examples for this Stack Overflow question). ```[NO LICENSE]```
A set of conventions for native C and C++ projects. [```[MIT]```][MIT]
A feature-packed, ready-to-use CMake template with testing, static and dynamic checks, coverage reports, and more. [```[MIT]```][MIT]
CMake modules for common applications related to computer graphics. [```[MIT]```][MIT]
Eyescale's common CMake modules. [```[BSD3]```][BSD-3-Clause]
Ryan Pavlik's collection of CMake modules. There are a number of find modules, especially for virtual reality and physical simulation, some utility modules, and some patches or workarounds for CMake itself. [```[BOOST]```][BOOST]
This is a collection of additional CMake modules. Most of them are from Ryan Pavlik. [```[BOOST]```][BOOST]
CMake modules for some scientific libraries. [```[BSD2]```][BSD-2-Clause]
hanjianwei's CMake module collection. [```[MIT]```][MIT]
CMake Community Modules. ```[NO LICENSE]```
KDE's extra modules and scripts for CMake. [```[BSD3]```][BSD-3-Clause]
CMake module to find International Components for Unicode (ICU) Library. [```[BSD2]```][BSD-2-Clause]
CMake module for building IDL files with MIDL and generating CLR DLL using Tlbimp. [```[MIT]```][MIT]
CMake module for Mathematica. [```[MIT]```][MIT]
CMake find module for Intel Threading Building Blocks. [```[MIT]```][MIT]
CMake module for building Windows Installer packages with WiX toolset. [```[BSD3]```][BSD-3-Clause]
CMake module for compile-time microbenchmarks. [```[BOOST]```][BOOST]
Ben Vining's library of CMake modules and toolchains [```[GPL]```][GPL]
Extra CMake Modules for Yet Another Robot Platform and friends. [```[BSD3]```][BSD-3-Clause]
Using a autocmake.yml file Autocmake composes CMake building blocks into a CMake project and generates CMakeLists.txt as well as a setup script, which serves as a front-end to CMakeLists.txt. [```[BSD3]```][BSD-3-Clause]
Program that automatically generates CMake configuration files for your Vala project. [```[GPL]```][GPL]
CMake-based build system that is used to build all packages in Robot Operating System (ROS). [```[BSD3]```][BSD-3-Clause]
Python module to reduce a CMake file to an AST. [```[MIT]```][MIT]
CMake checks cache helper modules. [```[MIT]```][MIT]
CMake for D2. [```[MIT]```][MIT]
Advanced syntax coloring support for CMake scripts inside Emacs. [```[GPL]```][GPL]
CMake Language Server Protocol Implementation. [```[MIT]```][MIT]
Check for coding style issues in CMake files. cmakelint requires Python. [```[APACHE2]```][APACHE2]
CMake integration for Maven builds. [```[APACHE2]```][APACHE2]
Enhanced CMake Project Manager plugin for Qt Creator. ```[NO LICENSE]```
Static analysis (linter) for the CMake language (e.g. to enforce modern CMake rules). [```[MIT]```][MIT]
configure-cmake is an autotools-style configure script for CMake-based projects. [```[CC0-1.0]```][CC0-1.0]
Integrate clang-format into your CMake project hosted in a git repository. [```[LICENSE]```](https://github.com/kbenzie/git-cmake-format/blob/master/license.txt)
CMake-based build system for node.js native modules. [```[ISC]```][ISC]
CMake scripts for building OpenSceneGraph third party libraries. ```[MIXED LICENSE]```
Improved build system generator for CPython C extensions. [```[MIT]```][MIT]
CMake scripts for painless usage of SuiteSparse+METIS. [```[BSD3]```][BSD-3-Clause]
Collection of CMake macros to simplify building LaTeX files. [```[BSD3]```][BSD-3-Clause]
Bake git information into your binary. [```[MIT]```][MIT]
CMake package retrieval. This can be used to download and install CMake packages. [```[BOOST]```][BOOST]
Conan C++ Package Manager, implemented in Python and has a CMake integration backend. [```[MIT]```][MIT]
C++ Package Manager based on CMake and Git. [```[MIT]```][MIT]
A setup-free CMake + git dependency manager. [```[MIT]```][MIT]
C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
High-level build system/dependency management for distributed, multi-platform C/C++ projects. [```[MIT]```][MIT]
Cross-platform package manager for C++ (based on CMake ExternalProject). [```[BSD2]```][BSD-2-Clause]
Build system that differs from others in two major respects: it is designed to have its input files generated by a higher-level build system (like CMake), and it is designed to run builds as fast as possible. [```[APACHE2]```][APACHE2]
PMM is a module for CMake that manages... package managers. [```[MIT]```][MIT]
A tool to acquire and build C++ open source libraries. Uses CMake internally as a build script language. [```[MIT]```][MIT]
Easily supporting CMake install and find_package().
Easy dependency management for C++ with CMake and Git.
Opt-in header-only libraries with CMake.
Ultimate Guide to Modern CMake.
A list of common CMake antipatterns (from 2013 but still relevant).
How to Build a CMake-Based Project.
Learn CMake's Scripting Language in 15 Minutes.
The architecture of CMake.
Building Cross-Platform CUDA Applications with CMake.
It's Time To Do CMake Right (one of the best articles about CMake).
Some nice and accurate CMake tips.
Modern CMake for Library Developers.
Effective Modern CMake: a great summary of most good practices - by Manuel Binna.
Modifying the default CMake build types/flags, toolchains and patches - Oh my! - by Cristian Adam.
Embracing Modern CMake - by Stephen Kelly.
.
.
Professional CMake: A Practical Guide (paid).
Effective CMake: Practical Advice to Write Better CMake (not fully written yet).
Effective CMake - by Daniel Pfeifer, C++Now 2017.
Modern CMake for Modular Design - by Mathieu Ropert, CppCon 2017.
Introduction to CMake - by Florent Castelli, C++ Sweden 2018.
More Modern CMake (slides & examples)- by Deniz Bahadir, Meeting C++ 2018.
Oh No! More Modern CMake (slides)- by Deniz Bahadir, Meeting C++ 2019.
Modern CMake **PDF** and samples by the creator of cmakepp. [```[MIT]```][MIT]
Modern CMake tutorials part1: CMake basics
A step-by-step guide for understanding CMake.
Tutorial and Example on How to Properly Use Modern CMake.
CGold: The Hitchhiker’s Guide to the CMake. [```[BSD2]```][BSD-2-Clause]
An Introduction to Modern CMake.
How to CMake Good. [```[CC0-1.0]```][CC0-1.0]
CMake toolchain file and other scripts for the Android NDK. [```[BSD3]```][BSD-3-Clause]
This is the CMake project settings for the Arduino platform. [```[MPL]```][MPL]
CMake toolchain for all official and 3rd party Arduino platforms. [```[MIT]```][MIT]
Collection of CMake toolchain files, mostly for static linking. [```[APACHE2]```][APACHE2]
CMake toolchain for AVR. [```[LICENSE]```](https://github.com/mkleemann/cmake-avr/blob/master/LICENSE)
Cross compiling toolchains in Docker images. [```[MIT]```][MIT]
Toolchain file and examples using CMake for iOS development. [```[BSD3]```][BSD-3-Clause]
CMake-based MinGW-w64 Cross Toolchain - to build Windows binaries of mpv. [```[ISC]```][ISC]
Collection of CMake toolchain files and scripts for cross-platform build and CI testing. [```[BSD2]```][BSD-2-Clause]
For building and deploying Qt based apps on Android without QtCreator. [```[LICENSE]```](https://github.com/LaurentGomila/qt-android-cmake/blob/master/license.txt)
For cross-compiling with CMake. They are meant to be mainly used on ArchLinux. ```[NO LICENSE]```
Modular CMake-based system that leverages ExternalProject to simplify builds. [```[LICENSE]```](https://github.com/janelia-flyem/buildem/blob/master/LICENSE.txt)
Add clang-tidy checks to a target using CMake. [```[MIT]```][MIT]
Enables code coverage and generates coverage reports with CMake targets. [```[GPL]```][GPL]
Get dependencies in config or script mode. ```[NO LICENSE]```
CMake macro to determine the language of a header file. [```[MIT]```][MIT]
LibFindMacros development repository and other cool CMake stuff. [```[LICENSE]```](https://github.com/Tronic/cmake-modules/blob/master/LibFindMacros.cmake#L2)
Visual Studio and GCC precompiled header macro. [```[LICENSE]```](https://github.com/larsch/cmake-precompiled-header/blob/master/PrecompiledHeader.cmake#L31)
Unit testing framework for CMake. [```[MIT]```][MIT]
Flexible development environments for CMake projects with external dependencies
CMake precompiled headers via custom compiler extension - with reuse support! [```[MIT]```][MIT]
Enhancement Suite for the CMake Build System. [```[MIT]```][MIT]
Improved version of cmake-compile-features. [```[LICENSE]```](https://github.com/foonathan/compatibility/blob/master/LICENSE)
Cotire (compile time reducer) is a CMake module that speeds up the build process of CMake based build systems by fully automating techniques as precompiled headers and unity builds for C and C++. [```[MIT]```][MIT]
Coveralls JSON coverage generator and uploader for CMake. [```[MIT]```][MIT]
Per-target CPPCheck for CMake. [```[MIT]```][MIT]
CMake module for downloading an external project's source at configure time. [```[MIT]```][MIT]
This is a repository of useful and less than useful CMake recipes. [```[MIT]```][MIT]
CMake integration for include-what-you-use. [```[MIT]```][MIT]
Make CMake less painful when trying to write Modern Flexible CMake. [```[MIT]```][MIT]
CMake module to enable sanitizers for binary targets. [```[MIT]```][MIT]
CMake tools and examples: collecting source files, warnings suppression, etc. [```[BSD2]```][BSD-2-Clause]
Utility and common library for all polysquare CMake tools. [```[MIT]```][MIT]
For managing compiler/linker flags, collecting sources, precompiled headers, unity builds and others. [```[MIT]```][MIT]