This commit is contained in:
2025-07-18 23:13:11 +02:00
parent c9485bf576
commit 652812eed0
2354 changed files with 1266414 additions and 1 deletions

591
html/cmake.md2.html Normal file
View File

@@ -0,0 +1,591 @@
<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>