CMake

CMake?is a powerful and comprehensive solution for managing the software build process.

143 resources8 categoriesView Original

Examples / Templates(23 items)

A

android-cmake

Examples of using ruslo/hunter package manager for an Android application. [```[BSD2]```][BSD-2-Clause]

Examples / Templates
B

BASIS

CMake BASIS makes it easy to create sharable software and libraries that work together. [```[BSD2]```][BSD-2-Clause]

Examples / Templates
C

cmake-cookbook

A huge CMake cookbook full of recipes. [```[MIT]```][MIT]

Examples / Templates
C

cmake-example

Example project which demonstrates various CMake features. [```[BSD3]```][BSD-3-Clause]

Examples / Templates
C

cmake-examples

Useful CMake examples in a tutorial format. [```[MIT]```][MIT]

Examples / Templates
C

cmake-examples

A collection of as simple as possible, modern CMake projects. [```[MIT]```][MIT]

Examples / Templates
C

cmake-init

Template for reliable, cross-platform C++ project setup using CMake. [```[LICENSE]```](https://github.com/cginternals/cmake-init/blob/master/LICENSE)

Examples / Templates
C

CMakeInstallExample

Installation example for a C++ project (Windows) with Cmake. ```[NO LICENSE]```

Examples / Templates
C

cmake_snippets

Short copy-pasteable CMake snippets. [```[BSD3]```][BSD-3-Clause]

Examples / Templates
C

cmake_templates

Templates for creating C++ libraries and executables (including conan). ```[NO LICENSE]```

Examples / Templates
C

cpp-boilerplate

Template that aims to be a reference for modern CMake and CI. [```[MIT]```][MIT]

Examples / Templates
C

cpp-project

Boiler plate for C++ projects - tests, CI, coverage, docs. [```[UNLICENSE]```][UNLICENSE]

Examples / Templates
C

cpp-template

A template C++ repository, using CMake and Catch. ```[NO LICENSE]```

Examples / Templates
C

cpp14-project-template

A C++14 template with CI, tests, code coverage, docs and static analysis integration. [```[CC0-1.0]```][CC0-1.0]

Examples / Templates
H

how-to-export-cpp-library

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]

Examples / Templates
H

hunter-simple

Example of downloading/installing dependencies using ruslo/hunter package manager. [```[BSD2]```][BSD-2-Clause]

Examples / Templates
M

mini-cmake-qt

Minimal CMake template for Qt 5 projects. [```[LICENSE]```](https://github.com/euler0/mini-cmake-qt/blob/master/LICENSE)

Examples / Templates
M

minimal_cmake_example

Minimal CMake example, that covers dependencies and packaging. [```[CC0-1.0]```][CC0-1.0]

Examples / Templates
M

modern-cmake-sample

Best practices and proper usage of CMake by using targets. ```[NO LICENSE]```

Examples / Templates
M

ModernCppStarter

A template for modern C++ projects using CMake, CI, code coverage, clang-format, reproducible dependency management, tests using doctest and much more. [```[UNLICENSE]```][UNLICENSE]

Examples / Templates
P

package-example

Config mode of find_package (examples for this Stack Overflow question). ```[NO LICENSE]```

Examples / Templates
P

pitchfork

A set of conventions for native C and C++ projects. [```[MIT]```][MIT]

Examples / Templates
S

SeeMake

A feature-packed, ready-to-use CMake template with testing, static and dynamic checks, coverage reports, and more. [```[MIT]```][MIT]

Examples / Templates

Modules(16 items)

C

cgcmake

CMake modules for common applications related to computer graphics. [```[MIT]```][MIT]

Modules
C

CMake

Eyescale's common CMake modules. [```[BSD3]```][BSD-3-Clause]

Modules
C

cmake-modules

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]

Modules
C

cmake-modules

This is a collection of additional CMake modules. Most of them are from Ryan Pavlik. [```[BOOST]```][BOOST]

Modules
C

cmake-modules

CMake modules for some scientific libraries. [```[BSD2]```][BSD-2-Clause]

Modules
C

cmake-modules

hanjianwei's CMake module collection. [```[MIT]```][MIT]

Modules
C

CMakeCM

CMake Community Modules. ```[NO LICENSE]```

Modules
E

extra-cmake-modules

KDE's extra modules and scripts for CMake. [```[BSD3]```][BSD-3-Clause]

Modules
F

FindICU.cmake

CMake module to find International Components for Unicode (ICU) Library. [```[BSD2]```][BSD-2-Clause]

Modules
F

FindIDL

CMake module for building IDL files with MIDL and generating CLR DLL using Tlbimp. [```[MIT]```][MIT]

Modules
F

FindMathematica

CMake module for Mathematica. [```[MIT]```][MIT]

Modules
F

FindTBB

CMake find module for Intel Threading Building Blocks. [```[MIT]```][MIT]

Modules
F

FindWiX

CMake module for building Windows Installer packages with WiX toolset. [```[BSD3]```][BSD-3-Clause]

Modules
M

Metabench

CMake module for compile-time microbenchmarks. [```[BOOST]```][BOOST]

Modules
O

Oranges

Ben Vining's library of CMake modules and toolchains [```[GPL]```][GPL]

Modules
Y

YCM

Extra CMake Modules for Yet Another Robot Platform and friends. [```[BSD3]```][BSD-3-Clause]

Modules

Other(20 items)

A

autocmake

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]

Other
A

autovala

Program that automatically generates CMake configuration files for your Vala project. [```[GPL]```][GPL]

Other
C

catkin

CMake-based build system that is used to build all packages in Robot Operating System (ROS). [```[BSD3]```][BSD-3-Clause]

Other
C

cmake-ast

Python module to reduce a CMake file to an AST. [```[MIT]```][MIT]

Other
C

cmake-checks-cache

CMake checks cache helper modules. [```[MIT]```][MIT]

Other
C

cmake-d

CMake for D2. [```[MIT]```][MIT]

Other
C

cmake-font-lock

Advanced syntax coloring support for CMake scripts inside Emacs. [```[GPL]```][GPL]

Other
C

cmake-language-server

CMake Language Server Protocol Implementation. [```[MIT]```][MIT]

Other
C

cmake-lint

Check for coding style issues in CMake files. cmakelint requires Python. [```[APACHE2]```][APACHE2]

Other
C

cmake-maven-plugin

CMake integration for Maven builds. [```[APACHE2]```][APACHE2]

Other
C

cmakeprojectmanager2

Enhanced CMake Project Manager plugin for Qt Creator. ```[NO LICENSE]```

Other
C

cmake_check

Static analysis (linter) for the CMake language (e.g. to enforce modern CMake rules). [```[MIT]```][MIT]

Other
C

configure-cmake

configure-cmake is an autotools-style configure script for CMake-based projects. [```[CC0-1.0]```][CC0-1.0]

Other
G

git-cmake-format

Integrate clang-format into your CMake project hosted in a git repository. [```[LICENSE]```](https://github.com/kbenzie/git-cmake-format/blob/master/license.txt)

Other
N

node-cmake

CMake-based build system for node.js native modules. [```[ISC]```][ISC]

Other
O

osg-3rdparty-cmake

CMake scripts for building OpenSceneGraph third party libraries. ```[MIXED LICENSE]```

Other
S

scikit-build

Improved build system generator for CPython C extensions. [```[MIT]```][MIT]

Other
S

suitesparse-metis-for-windows

CMake scripts for painless usage of SuiteSparse+METIS. [```[BSD3]```][BSD-3-Clause]

Other
U

UseLATEX

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

Other
V

version-from-git

Bake git information into your binary. [```[MIT]```][MIT]

Other

Package Management / Build Systems(10 items)

Resources(35 items)

A

Article

Easily supporting CMake install and find_package().

Resources
A

Article

Easy dependency management for C++ with CMake and Git.

Resources
A

Article

Opt-in header-only libraries with CMake.

Resources
A

Article

Ultimate Guide to Modern CMake.

Resources
A

Article

A list of common CMake antipatterns (from 2013 but still relevant).

Resources
A

Article

How to Build a CMake-Based Project.

Resources
A

Article

Learn CMake's Scripting Language in 15 Minutes.

Resources
A

Article

The architecture of CMake.

Resources
A

Article

Building Cross-Platform CUDA Applications with CMake.

Resources
A

Article

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

Resources
A

Article

Some nice and accurate CMake tips.

Resources
A

Article

Modern CMake for Library Developers.

Resources
A

Article

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

Resources
A

Article

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

Resources
A

Article + Lecture

Embracing Modern CMake - by Stephen Kelly.

Resources
B

Basic CMake usage

.

Resources
B

Basic CMake, part 2: libraries

.

Resources
B

Book

Professional CMake: A Practical Guide (paid).

Resources
B

Book

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

Resources
F

FAQ

Resources
L

Latest Documentation

Resources
L

Lecture

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

Resources
L

Lecture

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

Resources
L

Lecture

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

Resources
L

Lecture

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

Resources
L

Lecture

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

Resources
M

Modern CMake

Modern CMake **PDF** and samples by the creator of cmakepp. [```[MIT]```][MIT]

Resources
T

Tutorial

Modern CMake tutorials part1: CMake basics

Resources
T

Tutorial

A step-by-step guide for understanding CMake.

Resources
T

Tutorial

Tutorial and Example on How to Properly Use Modern CMake.

Resources
W

Web Book

CGold: The Hitchhiker’s Guide to the CMake. [```[BSD2]```][BSD-2-Clause]

Resources
W

Web Book

An Introduction to Modern CMake.

Resources
W

Webinars

Resources
W

Wiki

Resources
Y

YouTube Series

How to CMake Good. [```[CC0-1.0]```][CC0-1.0]

Resources

Utility Scripts(23 items)

B

buildem

Modular CMake-based system that leverages ExternalProject to simplify builds. [```[LICENSE]```](https://github.com/janelia-flyem/buildem/blob/master/LICENSE.txt)

Utility Scripts
C

clang-tidy-target-cmake

Add clang-tidy checks to a target using CMake. [```[MIT]```][MIT]

Utility Scripts
C

CMake-codecov

Enables code coverage and generates coverage reports with CMake targets. [```[GPL]```][GPL]

Utility Scripts
C

cmake-get

Get dependencies in config or script mode. ```[NO LICENSE]```

Utility Scripts
C

cmake-header-language

CMake macro to determine the language of a header file. [```[MIT]```][MIT]

Utility Scripts
C

cmake-modules

LibFindMacros development repository and other cool CMake stuff. [```[LICENSE]```](https://github.com/Tronic/cmake-modules/blob/master/LibFindMacros.cmake#L2)

Utility Scripts
C

cmake-precompiled-header

Visual Studio and GCC precompiled header macro. [```[LICENSE]```](https://github.com/larsch/cmake-precompiled-header/blob/master/PrecompiledHeader.cmake#L31)

Utility Scripts
C

cmake-unit

Unit testing framework for CMake. [```[MIT]```][MIT]

Utility Scripts
C

CMakeCooking

Flexible development environments for CMake projects with external dependencies

Utility Scripts
C

CMakePCHCompiler

CMake precompiled headers via custom compiler extension - with reuse support! [```[MIT]```][MIT]

Utility Scripts
C

cmakepp

Enhancement Suite for the CMake Build System. [```[MIT]```][MIT]

Utility Scripts
C

compatibility

Improved version of cmake-compile-features. [```[LICENSE]```](https://github.com/foonathan/compatibility/blob/master/LICENSE)

Utility Scripts
C

cotire

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]

Utility Scripts
C

coveralls-cmake

Coveralls JSON coverage generator and uploader for CMake. [```[MIT]```][MIT]

Utility Scripts
C

cppcheck-target-cmake

Per-target CPPCheck for CMake. [```[MIT]```][MIT]

Utility Scripts
D

DownloadProject

CMake module for downloading an external project's source at configure time. [```[MIT]```][MIT]

Utility Scripts
G

GreatCMakeCookOff

This is a repository of useful and less than useful CMake recipes. [```[MIT]```][MIT]

Utility Scripts
I

iwyu-target-cmake

CMake integration for include-what-you-use. [```[MIT]```][MIT]

Utility Scripts
I

ixm

Make CMake less painful when trying to write Modern Flexible CMake. [```[MIT]```][MIT]

Utility Scripts
S

sanitizers-cmake

CMake module to enable sanitizers for binary targets. [```[MIT]```][MIT]

Utility Scripts
S

sugar

CMake tools and examples: collecting source files, warnings suppression, etc. [```[BSD2]```][BSD-2-Clause]

Utility Scripts
T

tooling-cmake-util

Utility and common library for all polysquare CMake tools. [```[MIT]```][MIT]

Utility Scripts
U

ucm

For managing compiler/linker flags, collecting sources, precompiled headers, unity builds and others. [```[MIT]```][MIT]

Utility Scripts