Files
awesome-awesomeness/html/cmake.md2.html
2025-07-18 23:13:11 +02:00

592 lines
31 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<h1 id="awesome-cmake-awesome">Awesome CMake <a
href="https://github.com/sindresorhus/awesome"><img
src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg"
alt="Awesome" /></a></h1>
<p><a
href="https://cmake.org/"><img src="https://rawgit.com/onqtam/awesome-cmake/master/cmake-logo.svg" align="right" width="100"></a></p>
<blockquote>
<p>A curated list of awesome <a href="https://cmake.org/">CMake</a>
scripts, modules, examples and others</p>
</blockquote>
<p>Your contributions are highly welcome (first see <a
href="CONTRIBUTING.md">CONTRIBUTING.md</a>).</p>
<p>There is another file <a
href="NonModernCMake.md"><code>NonModernCMake.md</code></a> with other
links worth taking a look, but they use obsolete practices which are
considered non-modern - like not using <code>target_*</code>-based
dependency management - see <a
href="https://github.com/onqtam/awesome-cmake/issues/16"><code>#16</code></a>
and <a
href="https://github.com/onqtam/awesome-cmake/pull/42"><code>#42</code></a>
for more details.</p>
<h2 id="contents">Contents</h2>
<ul>
<li><a href="#community">Community</a></li>
<li><a href="#resources">Resources</a></li>
<li><a href="#package-management--build-systems">Package Management /
Build Systems</a></li>
<li><a href="#modules">Modules</a></li>
<li><a href="#utility-scripts">Utility Scripts</a></li>
<li><a href="#toolchains">Toolchains</a></li>
<li><a href="#examples--templates">Examples / Templates</a></li>
<li><a href="#other">Other</a></li>
</ul>
<h2 id="community">Community</h2>
<ul>
<li><a
href="http://webchat.freenode.net/?channels=cmake"><code>#cmake</code>
on Freenode</a></li>
<li><a href="https://www.reddit.com/r/cmake/"><code>/r/cmake</code> on
Reddit</a></li>
<li><a href="https://www.reddit.com/r/cpp/"><code>/r/cpp</code> on
Reddit</a></li>
<li><a href="https://discourse.cmake.org/">Official Discourse
Forum</a></li>
<li><a href="http://stackoverflow.com/questions/tagged/cmake">Stack
Overflow</a></li>
</ul>
<h2 id="resources">Resources</h2>
<ul>
<li><a href="https://cmake.org/cmake/help/latest/">Latest
Documentation</a></li>
<li><a
href="https://gitlab.kitware.com/cmake/community/-/wikis/FAQ">FAQ</a></li>
<li><a
href="https://gitlab.kitware.com/cmake/community/-/wikis/home">Wiki</a></li>
<li><a href="https://cmake.org/webinars/">Webinars</a></li>
<li><a href="https://github.com/ruslo/CGold">Web Book</a> - CGold: The
Hitchhikers <a href="https://cgold.readthedocs.io">Guide</a> to the
CMake. <a
href="https://opensource.org/licenses/BSD-2-Clause"><code>[BSD2]</code></a></li>
<li><a href="https://github.com/toeb/moderncmake">Modern CMake</a> -
Modern CMake <strong>PDF</strong> and samples by the creator of <a
href="https://github.com/toeb/cmakepp">cmakepp</a>. <a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
<li><a
href="https://www.siliceum.com/en/blog/post/cmake_01_cmake-basics">Tutorial</a>
- Modern CMake tutorials part1: CMake basics</li>
<li><a
href="http://foonathan.net/blog/2016/03/03/cmake-install.html">Article</a>
- Easily supporting CMake install and find_package().</li>
<li><a
href="http://foonathan.net/blog/2016/07/07/cmake-dependency-handling.html">Article</a>
- Easy dependency management for C++ with CMake and Git.</li>
<li><a
href="https://steveire.wordpress.com/2016/08/09/opt-in-header-only-libraries-with-cmake/">Article</a>
- Opt-in header-only libraries with CMake.</li>
<li><a href="https://rix0r.nl/blog/2015/08/13/cmake-guide/">Article</a>
- Ultimate Guide to Modern CMake.</li>
<li><a
href="https://web.archive.org/web/20190116071957/http://voices.canonical.com/jussi.pakkanen/2013/03/26/a-list-of-common-cmake-antipatterns/">Article</a>
- A list of common CMake antipatterns (from 2013 but still
relevant).</li>
<li><a
href="http://preshing.com/20170511/how-to-build-a-cmake-based-project/">Article</a>
- How to Build a CMake-Based Project.</li>
<li><a
href="http://preshing.com/20170522/learn-cmakes-scripting-language-in-15-minutes/">Article</a>
- Learn CMakes Scripting Language in 15 Minutes.</li>
<li><a href="http://aosabook.org/en/cmake.html">Article</a> - The
architecture of CMake.</li>
<li><a href="https://www.youtube.com/watch?v=bsXLMQ6WgIk">Lecture</a> -
Effective CMake - by Daniel Pfeifer, C++Now 2017.</li>
<li><a
href="https://devblogs.nvidia.com/parallelforall/building-cuda-applications-cmake/">Article</a>
- Building Cross-Platform CUDA Applications with CMake.</li>
<li><a
href="https://github.com/Wigner-GPU-Lab/Teaching/tree/master/CMake">Tutorial</a>
- A step-by-step guide for understanding CMake.</li>
<li><a
href="https://steveire.wordpress.com/2017/11/05/embracing-modern-cmake/">Article
+ Lecture</a> - Embracing Modern CMake - by Stephen Kelly.</li>
<li><a href="https://www.youtube.com/watch?v=eC9-iRN2b04">Lecture</a> -
Modern CMake for Modular Design - by Mathieu Ropert, CppCon 2017.</li>
<li><a
href="https://pabloariasal.github.io/2018/02/19/its-time-to-do-cmake-right/">Article</a>
- Its Time To Do CMake Right (one of the best articles about
CMake).</li>
<li>Articles - A series on CMake - by Martin Hořeňovský
<ul>
<li><a href="https://codingnest.com/basic-cmake/">Basic CMake
usage</a>.</li>
<li><a href="https://codingnest.com/basic-cmake-part-2/">Basic CMake,
part 2: libraries</a>.</li>
</ul></li>
<li><a href="https://www.youtube.com/watch?v=jt3meXdP-QI">Lecture</a> -
Introduction to CMake - by Florent Castelli, C++ Sweden 2018.</li>
<li><a
href="http://bastian.rieck.me/blog/posts/2018/cmake_tips/">Article</a> -
Some nice and accurate CMake tips.</li>
<li><a
href="http://unclejimbo.github.io/2018/06/08/Modern-CMake-for-Library-Developers/">Article</a>
- Modern CMake for Library Developers.</li>
<li><a
href="https://gist.github.com/mbinna/c61dbb39bca0e4fb7d1f73b0d66a4fd1">Article</a>
- Effective Modern CMake: a great summary of most good practices - by
Manuel Binna.</li>
<li><a href="https://crascit.com/professional-cmake/">Book</a> -
Professional CMake: A Practical Guide (paid).</li>
<li><a href="https://leanpub.com/effective-cmake">Book</a> - Effective
CMake: Practical Advice to Write Better CMake (not fully written
yet).</li>
<li><a href="https://cliutils.gitlab.io/modern-cmake/">Web Book</a> - An
Introduction to Modern CMake.</li>
<li><a
href="https://vector-of-bool.github.io/2018/08/12/cmake-good.html">YouTube
Series</a> - How to CMake Good. <a
href="https://creativecommons.org/publicdomain/zero/1.0/"><code>[CC0-1.0]</code></a></li>
<li><a href="https://www.youtube.com/watch?v=y7ndUhdQuU8">Lecture</a> -
More Modern CMake (<a
href="https://github.com/Bagira80/More-Modern-CMake">slides &amp;
examples</a>)- by Deniz Bahadir, Meeting C++ 2018.</li>
<li><a href="https://www.youtube.com/watch?v=y9kSr5enrSk">Lecture</a> -
Oh No! More Modern CMake (<a
href="https://github.com/Bagira80/More-Modern-CMake/raw/master/OhNoMoreModernCMake.pdf">slides</a>)-
by Deniz Bahadir, Meeting C++ 2019.</li>
<li><a
href="https://cristianadam.eu/20190223/modifying-the-default-cmake-build-types/">Article</a>
- Modifying the default CMake build types/flags, toolchains and patches
- Oh my! - by Cristian Adam.</li>
<li><a
href="https://github.com/schweitzer/modern-cmake-tutorial">Tutorial</a>
- Tutorial and Example on How to Properly Use Modern CMake.</li>
</ul>
<h2 id="package-management-build-systems">Package Management / Build
Systems</h2>
<ul>
<li><a href="https://github.com/ruslo/hunter">hunter</a> -
Cross-platform package manager for C++ (based on CMake ExternalProject).
<a
href="https://opensource.org/licenses/BSD-2-Clause"><code>[BSD2]</code></a></li>
<li><a href="https://github.com/pfultz2/cget">cget</a> - CMake package
retrieval. This can be used to download and install CMake packages. <a
href="http://www.boost.org/LICENSE_1_0.txt"><code>[BOOST]</code></a></li>
<li><a href="https://cppan.org/">cppan</a> - C++ Archive Network - C++
Package Manager based on CMake, implemented in C++14. <a
href="http://www.apache.org/licenses/LICENSE-2.0"><code>[APACHE2]</code></a></li>
<li><a href="https://github.com/iauns/cpm">cpm</a> - C++ Package Manager
based on CMake and Git. <a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
<li><a href="https://github.com/conan-io/conan">conan</a> - Conan C++
Package Manager, implemented in Python and has a CMake integration
backend. <a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
<li><a href="https://github.com/floooh/fips">fips</a> - High-level build
system/dependency management for distributed, multi-platform C/C++
projects. <a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
<li><a href="https://github.com/ninja-build/ninja">Ninja</a> - 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. <a
href="http://www.apache.org/licenses/LICENSE-2.0"><code>[APACHE2]</code></a></li>
<li><a href="https://github.com/Microsoft/vcpkg">vcpkg</a> - A tool to
acquire and build C++ open source libraries. Uses CMake internally as a
build script language. <a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
<li><a href="https://github.com/AnotherFoxGuy/pmm">pmm</a> - PMM is a
module for CMake that manages… package managers. <a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
<li><a href="https://github.com/TheLartians/CPM">cpm</a> - A setup-free
CMake + git dependency manager. <a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
</ul>
<h2 id="modules">Modules</h2>
<ul>
<li><a href="https://github.com/rpavlik/cmake-modules">cmake-modules</a>
- <a href="https://github.com/rpavlik">Ryan Pavlik</a>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. <a
href="http://www.boost.org/LICENSE_1_0.txt"><code>[BOOST]</code></a></li>
<li><a href="https://github.com/bilke/cmake-modules">cmake-modules</a> -
This is a collection of additional CMake modules. Most of them are from
Ryan Pavlik. <a
href="http://www.boost.org/LICENSE_1_0.txt"><code>[BOOST]</code></a></li>
<li><a href="https://github.com/Eyescale/CMake">CMake</a> - <a
href="https://github.com/Eyescale">Eyescale</a>s common CMake modules.
<a
href="https://opensource.org/licenses/BSD-3-Clause"><code>[BSD3]</code></a></li>
<li><a
href="https://github.com/jedbrown/cmake-modules">cmake-modules</a> -
CMake modules for some scientific libraries. <a
href="https://opensource.org/licenses/BSD-2-Clause"><code>[BSD2]</code></a></li>
<li><a href="https://github.com/chadmv/cgcmake">cgcmake</a> - CMake
modules for common applications related to computer graphics. <a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
<li><a
href="https://github.com/sakra/FindMathematica">FindMathematica</a> -
CMake module for Mathematica. <a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
<li><a
href="https://github.com/KDE/extra-cmake-modules">extra-cmake-modules</a>
- <a href="https://github.com/KDE">KDE</a>s extra modules and scripts
for CMake. <a
href="https://opensource.org/licenses/BSD-3-Clause"><code>[BSD3]</code></a></li>
<li><a href="https://github.com/julp/FindICU.cmake">FindICU.cmake</a> -
CMake module to find International Components for Unicode (ICU) Library.
<a
href="https://opensource.org/licenses/BSD-2-Clause"><code>[BSD2]</code></a></li>
<li><a href="https://github.com/justusc/FindTBB">FindTBB</a> - CMake
find module for Intel Threading Building Blocks. <a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
<li><a href="https://github.com/apriorit/FindWiX">FindWiX</a> - CMake
module for building <a
href="https://en.wikipedia.org/wiki/Windows_Installer">Windows
Installer</a> packages with <a href="http://wixtoolset.org">WiX
toolset</a>. <a
href="https://opensource.org/licenses/BSD-3-Clause"><code>[BSD3]</code></a></li>
<li><a href="https://github.com/apriorit/FindIDL">FindIDL</a> - CMake
module for building <a
href="https://docs.microsoft.com/en-us/windows/win32/midl/interface-definition-idl-file">IDL</a>
files with MIDL and generating CLR DLL using <a
href="https://docs.microsoft.com/en-us/dotnet/framework/tools/tlbimp-exe-type-library-importer">Tlbimp</a>.
<a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
<li><a
href="https://github.com/hanjianwei/cmake-modules">cmake-modules</a> -
<a href="https://github.com/hanjianwei">hanjianwei</a>s CMake module
collection. <a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
<li><a href="https://github.com/robotology/ycm">YCM</a> - Extra CMake
Modules for <a href="https://github.com/robotology/yarp">Yet Another
Robot Platform</a> and friends. <a
href="https://opensource.org/licenses/BSD-3-Clause"><code>[BSD3]</code></a></li>
<li><a href="https://github.com/AnotherFoxGuy/CMakeCM">CMakeCM</a> -
CMake Community Modules. <code>[NO LICENSE]</code></li>
<li><a href="https://github.com/ldionne/metabench">Metabench</a> - CMake
module for compile-time microbenchmarks. <a
href="http://www.boost.org/LICENSE_1_0.txt"><code>[BOOST]</code></a></li>
<li><a href="https://github.com/benthevining/Oranges">Oranges</a> - <a
href="https://github.com/benthevining">Ben Vining</a>s library of CMake
modules and toolchains <a
href="https://www.gnu.org/licenses/gpl-3.0.html"><code>[GPL]</code></a></li>
</ul>
<h2 id="utility-scripts">Utility Scripts</h2>
<p>These provide a wide range of functionality - from dealing with
compiler flags to using tools. Some also contain modules.</p>
<ul>
<li><a href="https://github.com/sakra/cotire">cotire</a> - 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++. <a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
<li><a href="https://github.com/onqtam/ucm">ucm</a> - For managing
compiler/linker flags, collecting sources, precompiled headers, unity
builds and others. <a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
<li><a href="https://github.com/toeb/cmakepp">cmakepp</a> - Enhancement
Suite for the CMake Build System. <a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
<li><a href="https://github.com/ruslo/sugar">sugar</a> - CMake tools and
examples: collecting source files, warnings suppression, etc. <a
href="https://opensource.org/licenses/BSD-2-Clause"><code>[BSD2]</code></a></li>
<li><a
href="https://github.com/Crascit/DownloadProject">DownloadProject</a> -
CMake module for downloading an external projects source at configure
time. <a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
<li><a href="https://github.com/janelia-flyem/buildem">buildem</a> -
Modular CMake-based system that leverages ExternalProject to simplify
builds. <a
href="https://github.com/janelia-flyem/buildem/blob/master/LICENSE.txt"><code>[LICENSE]</code></a></li>
<li><a
href="https://github.com/JoakimSoderberg/coveralls-cmake">coveralls-cmake</a>
- Coveralls JSON coverage generator and uploader for CMake. <a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
<li><a
href="https://github.com/foonathan/compatibility">compatibility</a> -
Improved version of cmake-compile-features. <a
href="https://github.com/foonathan/compatibility/blob/master/LICENSE"><code>[LICENSE]</code></a></li>
<li><a href="https://github.com/Tronic/cmake-modules">cmake-modules</a>
- LibFindMacros development repository and other cool CMake stuff. <a
href="https://github.com/Tronic/cmake-modules/blob/master/LibFindMacros.cmake#L2"><code>[LICENSE]</code></a></li>
<li><a
href="https://github.com/UCL/GreatCMakeCookOff">GreatCMakeCookOff</a> -
This is a repository of useful and less than useful CMake recipes. <a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
<li><a
href="https://github.com/polysquare/cppcheck-target-cmake">cppcheck-target-cmake</a>
- Per-target CPPCheck for CMake. <a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
<li><a
href="https://github.com/polysquare/clang-tidy-target-cmake">clang-tidy-target-cmake</a>
- Add clang-tidy checks to a target using CMake. <a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
<li><a href="https://github.com/polysquare/cmake-unit">cmake-unit</a> -
Unit testing framework for CMake. <a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
<li><a
href="https://github.com/polysquare/cmake-header-language">cmake-header-language</a>
- CMake macro to determine the language of a header file. <a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
<li><a
href="https://github.com/polysquare/tooling-cmake-util">tooling-cmake-util</a>
- Utility and common library for all polysquare CMake tools. <a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
<li><a
href="https://github.com/polysquare/iwyu-target-cmake">iwyu-target-cmake</a>
- CMake integration for include-what-you-use. <a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
<li><a
href="https://github.com/arsenm/sanitizers-cmake">sanitizers-cmake</a> -
CMake module to enable sanitizers for binary targets. <a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
<li><a
href="https://github.com/larsch/cmake-precompiled-header">cmake-precompiled-header</a>
- Visual Studio and GCC precompiled header macro. <a
href="https://github.com/larsch/cmake-precompiled-header/blob/master/PrecompiledHeader.cmake#L31"><code>[LICENSE]</code></a></li>
<li><a
href="https://github.com/nanoant/CMakePCHCompiler">CMakePCHCompiler</a>
- CMake precompiled headers via custom compiler extension - with reuse
support! <a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
<li><a
href="https://github.com/RWTH-ELP/CMake-codecov">CMake-codecov</a> -
Enables code coverage and generates coverage reports with CMake targets.
<a
href="https://www.gnu.org/licenses/gpl-3.0.html"><code>[GPL]</code></a></li>
<li><a href="https://github.com/pfultz2/cmake-get">cmake-get</a> - Get
dependencies in config or script mode. <code>[NO LICENSE]</code></li>
<li><a href="https://github.com/slurps-mad-rips/ixm">ixm</a> - Make
CMake less painful when trying to write Modern Flexible CMake. <a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
<li><a href="https://github.com/hakuch/CMakeCooking">CMakeCooking</a> -
Flexible development environments for CMake projects with external
dependencies . <a
href="http://www.apache.org/licenses/LICENSE-2.0"><code>[APACHE2]</code></a></li>
</ul>
<h2 id="toolchains">Toolchains</h2>
<ul>
<li><a href="https://github.com/dockcross/dockcross">dockcross</a> -
Cross compiling toolchains in Docker images. <a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
<li><a
href="https://github.com/taka-no-me/android-cmake">android-cmake</a> -
CMake toolchain file and other scripts for the Android NDK. <a
href="https://opensource.org/licenses/BSD-3-Clause"><code>[BSD3]</code></a></li>
<li><a href="https://github.com/cristeab/ios-cmake">ios-cmake</a> -
Toolchain file and examples using CMake for iOS development. <a
href="https://opensource.org/licenses/BSD-3-Clause"><code>[BSD3]</code></a></li>
<li><a
href="https://github.com/LaurentGomila/qt-android-cmake">qt-android-cmake</a>
- For building and deploying Qt based apps on Android without QtCreator.
<a
href="https://github.com/LaurentGomila/qt-android-cmake/blob/master/license.txt"><code>[LICENSE]</code></a></li>
<li><a
href="https://github.com/lachs0r/mingw-w64-cmake">mingw-w64-cmake</a> -
CMake-based MinGW-w64 Cross Toolchain - to build Windows binaries of
mpv. <a
href="https://opensource.org/licenses/ISC"><code>[ISC]</code></a></li>
<li><a href="https://github.com/mkleemann/cmake-avr">cmake-avr</a> -
CMake toolchain for AVR. <a
href="https://github.com/mkleemann/cmake-avr/blob/master/LICENSE"><code>[LICENSE]</code></a></li>
<li><a
href="https://github.com/francoiscampbell/arduino-cmake">arduino-cmake</a>
- This is the CMake project settings for the Arduino platform. <a
href="https://www.mozilla.org/en-US/MPL/2.0/"><code>[MPL]</code></a></li>
<li><a href="https://github.com/ruslo/polly">polly</a> - Collection of
CMake toolchain files and scripts for cross-platform build and CI
testing. <a
href="https://opensource.org/licenses/BSD-2-Clause"><code>[BSD2]</code></a></li>
<li><a href="https://github.com/mosra/toolchains">toolchains</a> - For
cross-compiling with CMake. They are meant to be mainly used on
ArchLinux. <code>[NO LICENSE]</code></li>
<li><a
href="https://github.com/staticlibs/cmake/tree/master/toolchains">cmake</a>
- Collection of CMake toolchain files, mostly for static linking. <a
href="http://www.apache.org/licenses/LICENSE-2.0"><code>[APACHE2]</code></a></li>
<li><a
href="https://github.com/a9183756-gh/Arduino-CMake-Toolchain">Arduino-CMake-Toolchain</a>
- CMake toolchain for all official and 3rd party Arduino platforms. <a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
</ul>
<h2 id="examples-templates">Examples / Templates</h2>
<ul>
<li><a href="https://github.com/cginternals/cmake-init">cmake-init</a> -
Template for reliable, cross-platform C++ project setup using CMake. <a
href="https://github.com/cginternals/cmake-init/blob/master/LICENSE"><code>[LICENSE]</code></a></li>
<li><a
href="https://github.com/forexample/android-cmake">android-cmake</a> -
Examples of using <a
href="https://github.com/ruslo/hunter">ruslo/hunter</a> package manager
for an Android application. <a
href="https://opensource.org/licenses/BSD-2-Clause"><code>[BSD2]</code></a></li>
<li><a
href="https://github.com/forexample/hunter-simple">hunter-simple</a> -
Example of downloading/installing dependencies using <a
href="https://github.com/ruslo/hunter">ruslo/hunter</a> package manager.
<a
href="https://opensource.org/licenses/BSD-2-Clause"><code>[BSD2]</code></a></li>
<li><a
href="https://github.com/forexample/package-example">package-example</a>
- Config mode of find_package (examples for <a
href="http://stackoverflow.com/questions/20746936/cmake-of-what-use-is-find-package-if-you-need-to-specify-cmake-module-path-an">this</a>
Stack Overflow question). <code>[NO LICENSE]</code></li>
<li><a
href="https://github.com/krux02/minimal_cmake_example">minimal_cmake_example</a>
- Minimal CMake example, that covers dependencies and packaging. <a
href="https://creativecommons.org/publicdomain/zero/1.0/"><code>[CC0-1.0]</code></a></li>
<li><a href="https://github.com/bast/cmake-example">cmake-example</a> -
Example project which demonstrates various CMake features. <a
href="https://opensource.org/licenses/BSD-3-Clause"><code>[BSD3]</code></a></li>
<li><a
href="https://github.com/ttroy50/cmake-examples">cmake-examples</a> -
Useful CMake examples in a tutorial format. <a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
<li><a href="https://github.com/euler0/mini-cmake-qt">mini-cmake-qt</a>
- Minimal CMake template for Qt 5 projects. <a
href="https://github.com/euler0/mini-cmake-qt/blob/master/LICENSE"><code>[LICENSE]</code></a></li>
<li><a href="https://github.com/cmake-basis/BASIS">BASIS</a> - CMake <a
href="https://cmake-basis.github.io">BASIS</a> makes it easy to create
sharable software and libraries that work together. <a
href="https://opensource.org/licenses/BSD-2-Clause"><code>[BSD2]</code></a></li>
<li><a
href="https://github.com/Lectem/cpp-boilerplate">cpp-boilerplate</a> -
Template that aims to be a reference for modern CMake and CI. <a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
<li><a
href="https://github.com/robotology/how-to-export-cpp-library">how-to-export-cpp-library</a>
- 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. <a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
<li><a
href="https://github.com/pabloariasal/modern-cmake-sample">modern-cmake-sample</a>
- Best practices and proper usage of CMake by using targets.
<code>[NO LICENSE]</code></li>
<li><a
href="https://github.com/DeveloperPaul123/CMakeInstallExample">CMakeInstallExample</a>
- Installation example for a C++ project (Windows) with Cmake.
<code>[NO LICENSE]</code></li>
<li><a
href="https://github.com/arnavb/cpp14-project-template">cpp14-project-template</a>
- A C++14 template with CI, tests, code coverage, docs and static
analysis integration. <a
href="https://creativecommons.org/publicdomain/zero/1.0/"><code>[CC0-1.0]</code></a></li>
<li><a
href="https://github.com/acdemiralp/cmake_templates">cmake_templates</a>
- Templates for creating C++ libraries and executables (including
conan). <code>[NO LICENSE]</code></li>
<li><a
href="https://github.com/adishavit/cmake_snippets">cmake_snippets</a> -
Short copy-pasteable CMake snippets. <a
href="https://opensource.org/licenses/BSD-3-Clause"><code>[BSD3]</code></a></li>
<li><a
href="https://github.com/dev-cafe/cmake-cookbook">cmake-cookbook</a> - A
huge CMake cookbook full of recipes. <a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
<li><a
href="https://github.com/joshpeterson/cpp-template">cpp-template</a> - A
template C++ repository, using CMake and Catch.
<code>[NO LICENSE]</code></li>
<li><a href="https://github.com/vector-of-bool/pitchfork">pitchfork</a>
- A set of conventions for native C and C++ projects. <a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
<li><a href="https://github.com/pr0g/cmake-examples">cmake-examples</a>
- A collection of as simple as possible, modern CMake projects. <a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
<li><a href="https://github.com/bsamseth/cpp-project">cpp-project</a> -
Boiler plate for C++ projects - tests, CI, coverage, docs. <a
href="https://unlicense.org/"><code>[UNLICENSE]</code></a></li>
<li><a
href="https://github.com/TheLartians/ModernCppStarter">ModernCppStarter</a>
- A template for modern C++ projects using CMake, CI, code coverage,
clang-format, reproducible dependency management, tests using <a
href="https://github.com/onqtam/doctest">doctest</a> and much more. <a
href="https://unlicense.org/"><code>[UNLICENSE]</code></a></li>
<li><a href="https://github.com/MhmRhm/SeeMake">SeeMake</a> - A
feature-packed, ready-to-use CMake template with testing, static and
dynamic checks, coverage reports, and more. <a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
</ul>
<h2 id="other">Other</h2>
<ul>
<li><a href="https://github.com/coderefinery/autocmake">autocmake</a> -
Using a autocmake.yml file <a
href="http://autocmake.readthedocs.io/en/latest/">Autocmake</a> 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. <a
href="https://opensource.org/licenses/BSD-3-Clause"><code>[BSD3]</code></a></li>
<li><a href="https://gitlab.kitware.com/kmorel/UseLATEX">UseLATEX</a> -
Collection of CMake macros to simplify building LaTeX files. <a
href="https://opensource.org/licenses/BSD-3-Clause"><code>[BSD3]</code></a></li>
<li><a
href="https://github.com/scikit-build/scikit-build">scikit-build</a> -
Improved build system generator for CPython C extensions. <a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
<li><a href="https://github.com/cjntaylor/node-cmake">node-cmake</a> -
CMake-based build system for node.js native modules. <a
href="https://opensource.org/licenses/ISC"><code>[ISC]</code></a></li>
<li><a
href="https://github.com/Lindydancer/cmake-font-lock">cmake-font-lock</a>
- Advanced syntax coloring support for CMake scripts inside Emacs. <a
href="https://www.gnu.org/licenses/gpl-3.0.html"><code>[GPL]</code></a></li>
<li><a href="https://github.com/rastersoft/autovala">autovala</a> -
Program that automatically generates CMake configuration files for your
Vala project. <a
href="https://www.gnu.org/licenses/gpl-3.0.html"><code>[GPL]</code></a></li>
<li><a href="https://github.com/ros/catkin">catkin</a> - CMake-based
build system that is used to build all packages in Robot Operating
System (ROS). <a
href="https://opensource.org/licenses/BSD-3-Clause"><code>[BSD3]</code></a></li>
<li><a
href="https://github.com/jlblancoc/suitesparse-metis-for-windows">suitesparse-metis-for-windows</a>
- CMake scripts for painless usage of SuiteSparse+METIS. <a
href="https://opensource.org/licenses/BSD-3-Clause"><code>[BSD3]</code></a></li>
<li><a
href="https://github.com/bjornblissing/osg-3rdparty-cmake">osg-3rdparty-cmake</a>
- CMake scripts for building OpenSceneGraph third party libraries.
<code>[MIXED LICENSE]</code></li>
<li><a href="https://github.com/dcarp/cmake-d">cmake-d</a> - CMake for
D2. <a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
<li><a
href="https://github.com/h4tr3d/cmakeprojectmanager2">cmakeprojectmanager2</a>
- Enhanced CMake Project Manager plugin for Qt Creator.
<code>[NO LICENSE]</code></li>
<li><a href="https://github.com/richq/cmake-lint">cmake-lint</a> - Check
for coding style issues in CMake files. cmakelint requires Python. <a
href="http://www.apache.org/licenses/LICENSE-2.0"><code>[APACHE2]</code></a></li>
<li><a
href="https://github.com/kbenzie/git-cmake-format">git-cmake-format</a>
- Integrate clang-format into your CMake project hosted in a git
repository. <a
href="https://github.com/kbenzie/git-cmake-format/blob/master/license.txt"><code>[LICENSE]</code></a></li>
<li><a
href="https://github.com/nemequ/configure-cmake">configure-cmake</a> -
configure-cmake is an autotools-style configure script for CMake-based
projects. <a
href="https://creativecommons.org/publicdomain/zero/1.0/"><code>[CC0-1.0]</code></a></li>
<li><a href="https://github.com/polysquare/cmake-ast">cmake-ast</a> -
Python module to reduce a CMake file to an AST. <a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
<li><a
href="https://github.com/cristianadam/cmake-checks-cache">cmake-checks-cache</a>
- CMake checks cache helper modules. <a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
<li><a href="https://github.com/DaelDe/cmake_check">cmake_check</a> -
Static analysis (linter) for the CMake language (e.g. to enforce modern
CMake rules). <a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
<li><a
href="https://github.com/regen100/cmake-language-server">cmake-language-server</a>
- CMake Language Server Protocol Implementation. <a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
<li><a
href="https://github.com/cmake-maven-project/cmake-maven-project">cmake-maven-plugin</a>
- CMake integration for Maven builds. <a
href="http://www.apache.org/licenses/LICENSE-2.0"><code>[APACHE2]</code></a></li>
<li><a
href="https://github.com/MhmRhm/version-from-git">version-from-git</a> -
Bake git information into your binary. <a
href="https://opensource.org/licenses/MIT"><code>[MIT]</code></a></li>
</ul>
<h2 id="license">License</h2>
<p>This is released under the <a
href="http://creativecommons.org/licenses/by/4.0/"><strong><code>Creative Commons Attribution 4.0 International</code></strong></a>
License <code>(CC BY 4.0)</code>.</p>
<p><a href="https://github.com/onqtam/awesome-cmake">cmake.md
Github</a></p>