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: Nov. 26, 2020, 6:05 a.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

402
44
6m
BSD-2-Clause

Samples for Learning Modern CMake

174
19
4y 95d
MIT

Material used for teaching.

42
9
1y 5m
n/a

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

5
1
8m
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
11m
BSD-2-Clause

C++ package retrieval

363
17
6m
n/a

C++ Package Manager

696
43
3y 8m
MIT

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

4.49K
591
1d
MIT

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

346
62
23d
MIT

a small build system with a focus on speed

6.28K
982
3d
Apache-2.0

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

11.07K
3.05K
2d
n/a

It's the C++ Package Manager Manager

8
3
5m
MIT

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

406
34
38d
MIT

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

Modules

My collection of CMake modules

697
167
108d
BSL-1.0

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

300
128
8m
n/a

Common CMake modules

137
67
8m
n/a

CMake modules for some scientific libraries

74
50
36d
BSD-2-Clause

CMake modules for common applications related to computer graphics

93
55
118d
MIT

CMake module for Mathematica.

41
8
8m
MIT

Extra modules and scripts for CMake.

67
28
10d
n/a

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

26
8
3y 10m
BSD-2-Clause

CMake find module for Intel Threading Building Blocks

75
35
3y 11m
MIT

CMake module for building Windows Installer packages with WiX toolset

7
2
10m
BSD-3-Clause

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

8
1
31d
BSD-3-Clause

CMake module collection

29
20
5y 7m
MIT

Extra CMake Modules for YARP and friends

32
19
2d
n/a

CMake Community Modules

1
1
10m
n/a

A simple framework for compile-time benchmarks

145
13
1y 9m
n/a

Utility Scripts

CMake module to speed up builds.

1.2K
134
11m
MIT

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

175
26
10m
MIT

An Enhancement Suite for the CMake Build System

359
36
3y 4m
n/a
101
21
9m
BSD-2-Clause

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

364
86
3y 7m
MIT

CMake and other scripts to help build process of FlyEM software

26
14
4y 45d
n/a

Coveralls JSON coverage generator and uploader for CMake

76
14
9m
MIT

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

70
12
4y 82d
Zlib

LibFindMacros development repository and other cool CMake stuff

38
16
10m
n/a

Bunch of CMake pain in the baker

40
21
1y 8m
MIT

Per-target CPPCheck for CMake

18
7
4y 6m
MIT

Add clang-tidy checks to a target using CMake

14
4
4y 6m
MIT

A unit testing framework for CMake

32
4
3y 6m
MIT

CMake macro to determine the language of a header file

4
1
4y 6m
MIT

Utility and common library for all polysquare cmake tools.

2
2
4y 6m
MIT

CMake integration for include-what-you-use

5
2
4y 6m
MIT

CMake modules to help use sanitizers

222
40
2y 42d
n/a

Visual Studio and GCC precompiled header macro for CMake

152
40
3y 9m
n/a

CMake precompiled header support via custom PCH compiler extension

103
22
1y 32d
MIT

CMake module for code coverage

64
20
4m
BSD-3-Clause

Get dependencies with cmake

58
3
1y 10m
n/a

Make CMake less painful when trying to write Modern Flexible CMake

69
5
10m
MIT

Flexible development environments for CMake projects with external dependencies

7
4
1y 8m
Apache-2.0

Toolchains

Cross compiling toolchains in Docker images

1.97K
260
10d
MIT

CMake toolchain file and other scripts for the Android NDK

1.11K
430
5y 6m
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)

267
98
85d
BSD-3-Clause

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

176
50
5m
n/a

cmake toolchain for AVR

127
43
1y 10m
n/a

Arduino CMake Build system

47
19
4y 9m
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.)

757
183
37d
BSD-2-Clause

Toolchains for crosscompiling with CMake.

58
20
12d
n/a

CMake scripts for Staticlibs projects

7
4
1y 6m
Apache-2.0

CMake toolchain for all Arduino compatible boards

47
9
5m
MIT

Examples / Templates

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

617
97
8m
MIT
29
2
3y 11m
BSD-2-Clause

CMake: config mode of find_package command (examples)

281
40
8m
n/a

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

134
33
3y 41d
CC0-1.0

Example project which demonstrates various CMake features.

129
47
11m
BSD-3-Clause

Useful CMake Examples

3.73K
819
7m
MIT

A minimal CMake template for Qt 5 projects

144
26
28d
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!

32
7
7m
n/a

A small c++ template with modern CMake

182
30
9m
MIT

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

212
37
1y 96d
MIT

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

434
52
9m
MIT

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

22
3
4m
MIT

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

46
9
2y 4m
CC0-1.0

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

85
9
5m
n/a

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

41
4
1y 4m
BSD-3-Clause

CMake Cookbook recipes.

930
269
88d
n/a

A template C++ repository, using CMake and Catch

27
9
5m
n/a

Pitchfork is a Set of C++ Project Conventions

425
26
1y 10m
MIT

A collection of as simple as possible, modern CMake projects

795
35
29d
MIT

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

293
77
38d
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.55K
111
16d
Unlicense

Other

CMake plugin composer.

31
8
7m
BSD-3-Clause

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

222
65
34d
n/a

CMake-based build system for node.js native modules

64
20
10m
ISC

Emacs Font-lock rules for CMake

34
5
73d
GPL-3.0

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

106
14
2y 113d
GPL-3.0

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

225
230
14d
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

316
181
10m
BSD-3-Clause

CMake scripts for building OpenSceneGraph third party libraries.

122
95
1y 8m
Unlicense

cmake for D2

44
11
52d
MIT

Enhanced CMake Project Manager plugin for Qt Creator

60
9
15d
n/a

Check for coding style issues in CMake files

94
12
3y 6m
Apache-2.0

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

46
10
3y 35d
Unlicense

Autotools-style configure script wrapper around CMake

78
3
3y 5m
CC0-1.0

Python module to reduce a cmake file to an AST

26
8
2y 5m
MIT

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

44
4
1y 9m
n/a

Static analysis for CMake files.

20
4
1y 4m
MIT

CMake LSP Implementation

60
2
18d
MIT

Project to enable using CMake from a Maven build.

41
6
43d
n/a

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