User Experience on mobile might not be great yet, but I'm working on it.

Your first time on this page? Allow me to give some explanations.

Awesome CMake

A curated list of awesome CMake resources, scripts, modules and examples.

Here you can see meta information about this topic like the time we last updated this page, the original creator of the awesome list and a link to the original GitHub repository.

Last Update: Oct. 22, 2021, 6:07 p.m.

Thank you onqtam & contributors
View Topic on GitHub:
onqtam/awesome-cmake

Search for resources by name or description.
Simply type in what you are looking for and the results will be filtered on the fly.

Further filter the resources on this page by type (repository/other resource), number of stars on GitHub and time of last commit in months.

Community

Resources

The Hitchhikerโ€™s Guide to the CMake

414
46
1y 4m
BSD-2-Clause

Samples for Learning Modern CMake

178
20
5y 61d
MIT

Material used for teaching.

42
9
2y 4m
n/a

Tutorial about doing CMake Right (Official repo is now https://github.com/IRCAD-IHU/modern-cmake-tutorial)

6
3
1y 7m
n/a

Modern CMake tutorials part1: CMake basics

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).

Learn CMake's Scripting Language in 15 Minutes.

The architecture of CMake.

Effective CMake - by Daniel Pfeifer, C++Now 2017.

Building Cross-Platform CUDA Applications with CMake.

Embracing Modern CMake - by Stephen Kelly.

Modern CMake for Modular Design - by Mathieu Ropert, CppCon 2017.

It's Time To Do CMake Right (one of the best articles about CMake).

Introduction to CMake - by Florent Castelli, C++ Sweden 2018.

Modern CMake for Library Developers.

Effective Modern CMake: a great summary of most good practices - by Manuel Binna.

Professional CMake: A Practical Guide (paid).

Effective CMake: Practical Advice to Write Better CMake (not fully written yet).

An Introduction to Modern CMake.

More Modern CMake (slides & examples)- by Deniz Bahadir, Meeting C++ 2018.

Oh No! More Modern CMake (slides)- by Deniz Bahadir, Meeting C++ 2019.

Modifying the default CMake build types/flags, toolchains and patches - Oh my! - by Cristian Adam.

Package Management / Build Systems

1.88K
524
1y 10m
BSD-2-Clause

C++ package retrieval

369
18
9m
n/a

C++ Package Manager

696
45
4y 7m
MIT

Conan - The open-source C/C++ package manager

4.74K
615
8m
MIT

High-level build system for distributed, multi-platform C/C++ projects.

360
63
8m
MIT

a small build system with a focus on speed

6.56K
1.03K
8m
Apache-2.0

C++ Library Manager for Windows, Linux, and MacOS

12K
3.37K
8m
n/a

It's the C++ Package Manager Manager

10
2
10m
MIT

๐Ÿ“ฆ CMake's missing package manager. A small CMake script for setup-free, cross-platform, reproducible dependency management.

523
44
8m
MIT

C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [[APACHE2]][APACHE2]

Modules

My collection of CMake modules

730
177
10m
BSL-1.0

Additional CMake functionality. Most of the modules are from Ryan Pavlik (https://github.com/rpavlik/cmake-modules)

315
137
8m
n/a

Common CMake modules

137
68
1y 7m
n/a

CMake modules for some scientific libraries

75
52
1y 2d
BSD-2-Clause

CMake modules for common applications related to computer graphics

96
58
1y 84d
MIT

CMake module for Mathematica.

41
8
10m
MIT

Extra modules and scripts for CMake.

71
30
8m
n/a

[CMake] [BSD-2] CMake module to find ICU

27
8
4y 9m
BSD-2-Clause

CMake find module for Intel Threading Building Blocks

77
34
4y 10m
MIT

CMake module for building Windows Installer packages with WiX toolset

7
2
1y 9m
BSD-3-Clause

CMake module for building IDL files with MIDL and generating CLR DLL using Tlbimp

8
1
12m
BSD-3-Clause

CMake module collection

29
20
6y 6m
MIT

Extra CMake Modules for YARP and friends

33
19
8m
n/a

CMake Community Modules

1
1
1y 9m
n/a

A simple framework for compile-time benchmarks

146
13
2y 8m
n/a

Utility Scripts

CMake module to speed up builds.

1.21K
135
1y 10m
MIT

Useful cmake macros that help with: compiler/linker flags, collecting sources, PCHs, Unity builds and other stuff.

184
26
1y 9m
MIT

An Enhancement Suite for the CMake Build System

363
37
4y 109d
n/a
101
21
1y 8m
BSD-2-Clause

CMake module for downloading an external project's source at configure time

380
88
4y 6m
MIT

CMake and other scripts to help build process of FlyEM software

26
14
5y 11d
n/a

Coveralls JSON coverage generator and uploader for CMake

77
14
1y 8m
MIT

unmaintained - CMake module to activate certain C++ standard, feature checks and appropriate automated workarounds - basically an improved version of cmake-compile-features

71
12
5y 48d
Zlib

LibFindMacros development repository and other cool CMake stuff

39
16
1y 9m
n/a

Bunch of CMake pain in the baker

40
21
2y 7m
MIT

Per-target CPPCheck for CMake

18
7
5y 4m
MIT

Add clang-tidy checks to a target using CMake

14
4
5y 4m
MIT

A unit testing framework for CMake

32
4
4y 4m
MIT

CMake macro to determine the language of a header file

4
1
5y 5m
MIT

Utility and common library for all polysquare cmake tools.

2
2
5y 4m
MIT

CMake integration for include-what-you-use

6
2
5y 4m
MIT

CMake modules to help use sanitizers

229
40
3y 8d
n/a

Visual Studio and GCC precompiled header macro for CMake

152
41
4y 7m
n/a

CMake precompiled header support via custom PCH compiler extension

105
22
1y 12m
MIT

CMake module for code coverage

70
24
1y 113d
BSD-3-Clause

Get dependencies with cmake

58
3
2y 9m
n/a

Make CMake less painful when trying to write Modern Flexible CMake

76
4
1y 9m
MIT

Flexible development environments for CMake projects with external dependencies

7
4
2y 7m
Apache-2.0

Toolchains

Cross compiling toolchains in Docker images

2.06K
268
8m
MIT

CMake toolchain file and other scripts for the Android NDK

1.12K
432
6y 5m
n/a

A toolchain file and examples using cmake for iOS development (this is a fork of a similar project found on code.google.com)

275
102
1y 51d
BSD-3-Clause

A simple CMake utility for building and deploying Qt based applications on Android without QtCreator

184
52
1y 4m
n/a

cmake toolchain for AVR

136
44
2y 9m
n/a

Arduino CMake Build system

49
20
5y 8m
n/a

Collection of CMake toolchain files and scripts for cross-platform build and CI testing (GCC, Visual Studio, iOS, Android, Clang analyzer, sanitizers etc.)

775
190
9m
BSD-2-Clause

Toolchains for crosscompiling with CMake.

58
21
11m
n/a

CMake scripts for Staticlibs projects

7
4
2y 5m
Apache-2.0

CMake toolchain for all Arduino compatible boards

57
13
1y 4m
MIT

Examples / Templates

Template for reliable, cross-platform C++ project setup using cmake.

637
101
1y 7m
MIT
29
2
4y 10m
BSD-2-Clause

CMake: config mode of find_package command (examples)

291
42
1y 7m
n/a

this tries to be a minimal cmake example, that covers sources resources dependencies and packaging.

142
33
4y 7d
CC0-1.0

Example project which demonstrates various CMake features.

130
48
1y 10m
BSD-3-Clause

Useful CMake Examples

4.44K
971
9m
MIT

A minimal CMake template for Qt 5 & 6 projects

154
28
10m
Unlicense

CMake BASIS makes it easy to create sharable software and libraries that work together. This is accomplished by combining and documenting some of the best practices and utilities available. This project supplies a fully integrated suite of functionality to make the whole process seamless!

34
9
1y 6m
n/a

A small c++ template with modern CMake

193
35
10m
MIT

An OS-agnostic C++ library template in plain CMake.

223
35
9m
MIT

Example library that shows best practices and proper usage of CMake by using targets

461
52
1y 7m
MIT

Installation example for a C++ project (Windows) with Cmake.

22
5
1y 112d
MIT

A simple, cross-platform, and continuously integrated C++14 project template

49
9
3y 108d
CC0-1.0

Concise CMake templates for creating C++ libraries or executables.

88
9
1y 4m
n/a

Short copy-pasteable CMake snippets ::: ${โœ‚๏ธ}

43
4
2y 105d
BSD-3-Clause

CMake Cookbook recipes.

1.04K
299
1y 54d
n/a

A template C++ repository, using CMake and Catch

28
10
1y 4m
n/a

Pitchfork is a Set of C++ Project Conventions

474
25
2y 9m
MIT

A collection of as simple as possible, modern CMake projects

834
38
8m
MIT

Boiler plate template for C++ projects, with CMake, Doctest, Travis CI, Appveyor, Github Actions and coverage reports.

317
81
8m
Unlicense

๐Ÿš€ Kick-start your C++! A template for modern C++ projects using CMake, CI, code coverage, clang-format, reproducible dependency management and much more.

1.72K
119
8m
Unlicense

Other

CMake plugin composer.

32
8
1y 6m
BSD-3-Clause

Improved build system generator for CPython C, C++, Cython and Fortran extensions

233
69
1y 0d
n/a

CMake-based build system for node.js native modules

66
20
1y 9m
ISC

Emacs Font-lock rules for CMake

36
5
9m
GPL-3.0

A program that automatically generates CMake and Meson configuration files for your Vala project

106
14
3y 79d
GPL-3.0

A CMake-based build system that is used to build all packages in ROS.

232
241
11m
BSD-3-Clause

CMake scripts for painless usage of SuiteSparse+METIS from Visual Studio and the rest of Windows/Linux/OSX IDEs supported by CMake

321
187
1y 9m
BSD-3-Clause

CMake scripts for building OpenSceneGraph third party libraries.

125
96
2y 6m
Unlicense

cmake for D2

45
12
10m
MIT

Enhanced CMake Project Manager plugin for Qt Creator

64
8
8m
n/a

Check for coding style issues in CMake files

95
13
4y 5m
Apache-2.0

Standardise code formating for cmake projects with git and clang-format

47
11
4y 1d
Unlicense

Autotools-style configure script wrapper around CMake

79
4
4y 4m
CC0-1.0

Python module to reduce a cmake file to an AST

26
8
3y 4m
MIT

CMake checks cache helper modules โ€“ for fast CI CMake builds!

47
4
2y 8m
n/a

Static analysis for CMake files.

20
5
2y 102d
MIT

CMake LSP Implementation

79
3
9m
MIT

Project to enable using CMake from a Maven build.

44
6
10m
n/a

Collection of CMake macros to simplify building LaTeX files. [[BSD3]][BSD-3-Clause]