A curated list of awesome CMake scripts, modules, examples and others.
This is released under the Creative Commons Attribution 4.0 International
License (CC BY 4.0)
.
Your contributions are highly welcome (first see CONTRIBUTING.md).
For more awesome lists, see awesome.
- ruslo/CGold - The Hitchhiker’s Guide to the CMake. BSD2
- Article - Easy dependency management for C++ with CMake and Git.
- Article - Opt-in header-only libraries with CMake.
- Modern CMake Modern CMake PDF and samples by creator of cmakepp. MIT
- Ultimate Guide to Modern CMake
- Older Modern CMake Modern CMake for C++.
- Article - A list of common CMake antipatterns (from 2013 but still relevant).
- ruslo/hunter - Cross-platform package manager for C++ (based on CMake ExternalProject). BSD2
- pfultz2/cget - CMake package retrieval. This can be used to download and install CMake packages. BOOST
- iauns/cpm - A C++ Package Manager based on CMake and Git. MIT
- conan-io/conan - Conan C++ Package Manager, implemented in Python and has a CMake integration backend. MIT
- rpavlik/cmake-modules - A 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
- bilke/cmake-modules - This is a collection of additional CMake modules. Most of them are from Ryan Pavlik. BOOST
- Eyescale/CMake - Common CMake modules. BSD3
- tcbrindle/sdl2-cmake-scripts - CMake scripts for finding the SDL2, SDL2_image and SDL2_ttf libraries and headers. BSD2
- nerdvegas/vfxcmake - CMake Find modules for common vfx software, and general CMake utility code. LGPL
- jedbrown/cmake-modules - CMake modules for some scientific libraries. BSD2
- chadmv/cgcmake - CMake modules for common applications related to computer graphics. MIT
- sakra/FindMathematica - CMake module for Mathematica. MIT
- KDE/extra-cmake-modules - Extra modules and scripts for CMake. BSD3
- julp/FindICU.cmake - A CMake module to find International Components for Unicode (ICU) Library. BSD2
- justusc/FindTBB - CMake find module for Intel Threading Building Blocks. MIT
- hanjianwei/cmake-modules - CMake module collection. MIT
These provide a wide range of functionality - from dealing with compiler flags to using tools. Some also contain modules.
- sakra/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
- onqtam/ucm - For managing compiler/linker flags, collecting sources, precompiled headers, unity builds and others. MIT
- toeb/cmakepp - An Enhancement Suite for the CMake Build System. MIT
- ruslo/sugar - CMake tools and examples: collecting source files, warnings suppression, etc. BSD2
- Crascit/DownloadProject - CMake module for downloading an external project's source at configure time. MIT
- janelia-flyem/buildem - A modular CMake-based system that leverages ExternalProject to simplify builds. LICENSE
- JoakimSoderberg/coveralls-cmake - Coveralls JSON coverage generator and uploader for CMake. MIT
- foonathan/compatibility - An improved version of cmake-compile-features. LICENSE
- Tronic/cmake-modules - LibFindMacros development repository and other cool CMake stuff. LICENSE
- UCL/GreatCMakeCookOff - This is a repository of useful and less than useful CMake recipes. MIT
- polysquare/cppcheck-target-cmake - Per-target CPPCheck for CMake. MIT
- polysquare/clang-tidy-target-cmake - Add clang-tidy checks to a target using CMake. MIT
- polysquare/cmake-unit - A unit testing framework for CMake. MIT
- polysquare/cmake-header-language - CMake macro to determine the language of a header file. MIT
- polysquare/tooling-cmake-util - Utility and common library for all polysquare CMake tools. MIT
- polysquare/iwyu-target-cmake - CMake integration for include-what-you-use. MIT
- arsenm/sanitizers-cmake - CMake module to enable sanitizers for binary targets. MIT
- larsch/cmake-precompiled-header - Visual Studio and GCC precompiled header macro. LICENSE
- nanoant/CMakePCHCompiler - CMake precompiled headers via custom compiler extension - with reuse support! MIT
- RWTH-ELP/CMake-codecov - Enables code coverage and generates coverage reports with CMake targets. GPL
- puppetlabs/leatherman - A collection of C++ and CMake utility libraries. APACHE 2
- taka-no-me/android-cmake - CMake toolchain file and other scripts for the Android NDK. BSD3
- cristeab/ios-cmake - A toolchain file and examples using CMake for iOS development. BSD3
- LaurentGomila/qt-android-cmake - For building and deploying Qt based apps on Android without QtCreator. LICENSE
- lachs0r/mingw-w64-cmake - CMake-based MinGW-w64 Cross Toolchain - to build Windows binaries of mpv. ISC
- mkleemann/cmake-avr - CMake toolchain for AVR. LICENSE
- francoiscampbell/arduino-cmake - This is the CMake project settings for the Arduino platform. MPL
- ruslo/polly - Collection of CMake toolchain files and scripts for cross-platform build and CI testing. BSD2
- mosra/toolchains - For crosscompiling with CMake. They are meant to be mainly used on ArchLinux. [NO LICENSE]
- staticlibs/cmake - Collection of CMake toolchain files, mostly for static linking. APACHE 2
- cginternals/cmake-init - Template for reliable, cross-platform C++ project setup using CMake. LICENSE
- Akagi201/learning-cmake - This is a simple CMake practice project which contains some different scenarios. GPL2
- skebanga/cmake_test - A small example project using CMake. [NO LICENSE]
- forexample/android-cmake - Examples of using ruslo/hunter package manager for an Android application. BSD2
- forexample/hunter-simple - Example of downloading/installing dependencies using ruslo/hunter package manager. BSD2
- ruslo/weather - Example of using Hunter cross-platform package manager for CMake to build application which use Boost, CppNetlib.URI, GTest, JSON Spirit. Platforms: Windows (Visual Studio), Linux, Mac OS X + iOS. BSD2
- forexample/package-example - Config mode of find_package command (examples for this SO question). [NO LICENSE]
- OutOfOrder/CMakeTemplates - A set of initial CMake templates that I use for every game port I work on. [NO LICENSE]
- krux02/minimal_cmake_example - A minimal CMake example, that covers dependencies and packaging. CC0-1.0
- bast/cmake-example - Example project which demonstrates various CMake features. BSD3
- ttroy50/cmake-examples - Useful CMake examples in a tutorial format. MIT
- district10/cmake-templates - Some CMake Templates. Qt, Boost, OpenCV, C++11, etc. MIT
- Barthelemy/CppProjectTemplate - Basic, but working, C++ project using CMake, boost and Doxygen. MIT
- euler0/mini-cmake-qt - A minimal CMake template for Qt 5 projects. LICENSE
- cognitivewaves/CMake-VisualStudio-Example - CMake example for Visual Studio developers - blog post. [NO LICENSE]
- NewProggie/Cpp-Project-Template - C++ bootstrap project template including CMake build system. MIT
- cmake-basis/BASIS - CMake BASIS makes it easy to create sharable software and libraries that work together. BSD2
- ArthurSonzogni/OpenGL_CMake_Skeleton - A ready to use CMake skeleton using GLFW, Glew and glm. MIT
- JoakimSoderberg/coveralls-cmake-example - Example project for coveralls-cmake. [NO LICENSE]
- kartikkumar/cppbase - A template for a simple CMake-based C++ project. MIT
- maxbader/Arduino-CMake-Template - Starting point for Arduino development using CMake. [NO LICENSE]
- fletcher/c-template - Boilerplate to set up a c project, include CuTest, cmake build setup. MIT
- duckie/cpp_project_template - A simple template to start quickly a C++ project managed by CMake. [NO LICENSE]
- coderefinery/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
- kmorel/UseLATEX - A collection of CMake macros to simplify building LaTeX files. BSD3
- python-cmake-buildsystem/python-cmake-buildsystem - A replacement buildsystem for CPython. APACHE 2
- jesperes/protobuf-cmake - CMake build support for Google Protobufs. BSD3
- cjntaylor/node-cmake - CMake-based build system for node.js native modules. ISC
- Lindydancer/cmake-font-lock - Advanced syntax coloring support for CMake scripts inside Emacs. GPL
- ObKo/stm32-cmake - Used to develop applications for the STM32 - ST's ARM Cortex-M0(3,4,7) MCUs. [NO LICENSE]
- rastersoft/autovala - A program that automatically generates CMake configuration files for your Vala project. GPL
- ros/catkin - A CMake-based build system that is used to build all packages in Robot Operating System (ROS). BSD3
- jlblancoc/suitesparse-metis-for-windows - CMake scripts for painless usage of SuiteSparse+METIS. BSD3
- thewtex/cython-cmake-example - Utilities and example for using CMake to build Cython modules. LICENSE
- bjornblissing/osg-3rdparty-cmake - CMake scripts for building OpenSceneGraph third party libraries. [NO LICENSE]
- dcarp/cmake-d - CMake for D2. MIT
- h4tr3d/cmakeprojectmanager2 - Enhanced CMake Project Manager plugin for Qt Creator. [NO LICENSE]
- robotology/ycm - Extra CMake Modules for Yet Another Robot Platform and friends. BSD2
- richq/cmake-lint - Check for coding style issues in CMake files. cmakelint requires Python. APACHE 2
- kbenzie/git-cmake-format - Integrate clang-format into your CMake project hosted in a git repository. LICENSE
- nemequ/configure-cmake - configure-cmake is an autotools-style configure script for CMake-based projects. CC0-1.0
- wjakob/tbb - Threading Building Blocks with CMake build. [NO LICENSE]
- snikulov/sqlite.cmake.build - CMake script for sqlite amalgamation. [NO LICENSE]
- polysquare/cmake-ast - Python module to reduce a CMake file to an AST. MIT