awesome-cmake

CMake resource hub

A curated collection of CMake resources, scripts, modules, and examples for building and managing C++ projects.

A curated list of awesome CMake resources, scripts, modules and examples.

GitHub

5k stars
193 watching
487 forks
last commit: about 2 years ago
Linked from 7 awesome lists

awesomeawesome-listcmakecmake-examplescmake-modulescmake-resourcescmake-scriptscmake-toolchainslist

Awesome CMake / Community

#cmake on Freenode
/r/cmake on Reddit
/r/cpp on Reddit
Official Discourse Forum
Stack Overflow

Awesome CMake / Resources

Latest Documentation
FAQ
Wiki
Webinars
Web Book527over 3 years agoCGold: The Hitchhiker’s to the CMake
Modern CMake233about 10 years agoModern CMake and samples by the creator of
TutorialModern CMake tutorials part1: CMake basics
ArticleEasily supporting CMake install and find_package()
ArticleEasy dependency management for C++ with CMake and Git
ArticleOpt-in header-only libraries with CMake
ArticleUltimate Guide to Modern CMake
ArticleA list of common CMake antipatterns (from 2013 but still relevant)
ArticleHow to Build a CMake-Based Project
ArticleLearn CMake's Scripting Language in 15 Minutes
ArticleThe architecture of CMake
LectureEffective CMake - by Daniel Pfeifer, C++Now 2017
ArticleBuilding Cross-Platform CUDA Applications with CMake
Tutorial62over 4 years agoA step-by-step guide for understanding CMake
Article + LectureEmbracing Modern CMake - by Stephen Kelly
LectureModern CMake for Modular Design - by Mathieu Ropert, CppCon 2017
ArticleIt's Time To Do CMake Right (one of the best articles about CMake)

Awesome CMake / Resources / Articles

Basic CMake usage
Basic CMake, part 2: libraries

Awesome CMake / Resources

LectureIntroduction to CMake - by Florent Castelli, C++ Sweden 2018
ArticleSome nice and accurate CMake tips
ArticleModern CMake for Library Developers
ArticleEffective Modern CMake: a great summary of most good practices - by Manuel Binna
BookProfessional CMake: A Practical Guide (paid)
BookEffective CMake: Practical Advice to Write Better CMake (not fully written yet)
Web BookAn Introduction to Modern CMake
YouTube SeriesHow to CMake Good
LectureMore Modern CMake ( )- by Deniz Bahadir, Meeting C++ 2018
LectureOh No! More Modern CMake ( )- by Deniz Bahadir, Meeting C++ 2019
ArticleModifying the default CMake build types/flags, toolchains and patches - Oh my! - by Cristian Adam
Tutorial33over 6 years agoTutorial and Example on How to Properly Use Modern CMake

Awesome CMake / Package Management / Build Systems

hunter1,870over 6 years agoCross-platform package manager for C++ (based on CMake ExternalProject)
cget454over 2 years agoCMake package retrieval. This can be used to download and install CMake packages
cppanC++ Archive Network - C++ Package Manager based on CMake, implemented in C++14
cpm747about 5 years agoC++ Package Manager based on CMake and Git
conan8,370over 1 year agoConan C++ Package Manager, implemented in Python and has a CMake integration backend
fips473over 2 years agoHigh-level build system/dependency management for distributed, multi-platform C/C++ projects
Ninja11,348almost 2 years agoBuild 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
vcpkg23,503almost 2 years agoA tool to acquire and build C++ open source libraries. Uses CMake internally as a build script language
pmm15over 5 years agoPMM is a module for CMake that manages... package managers
cpm3,099about 2 years agoA setup-free CMake + git dependency manager

Awesome CMake / Modules

cmake-modules1,022about 2 years ago'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
cmake-modules549over 2 years agoThis is a collection of additional CMake modules. Most of them are from Ryan Pavlik
CMake156almost 3 years ago's common CMake modules
cmake-modules87almost 6 years agoCMake modules for some scientific libraries
cgcmake129over 5 years agoCMake modules for common applications related to computer graphics
FindMathematica60over 2 years agoCMake module for Mathematica
extra-cmake-modules137almost 2 years ago's extra modules and scripts for CMake
FindICU.cmake30over 9 years agoCMake module to find International Components for Unicode (ICU) Library
FindTBB90over 8 years agoCMake find module for Intel Threading Building Blocks
FindWiX18almost 4 years agoCMake module for building packages with
FindIDL27almost 2 years agoCMake module for building files with MIDL and generating CLR DLL using
cmake-modules30over 11 years ago's CMake module collection
YCM54almost 2 years agoExtra CMake Modules for and friends
CMakeCM2over 4 years agoCMake Community Modules
Metabench183over 5 years agoCMake module for compile-time microbenchmarks
Oranges's library of CMake modules and toolchains

Awesome CMake / Utility Scripts

cotire1,301over 6 years agoCotire (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++
ucm210over 3 years agoFor managing compiler/linker flags, collecting sources, precompiled headers, unity builds and others
cmakepp437over 4 years agoEnhancement Suite for the CMake Build System
sugar97over 6 years agoCMake tools and examples: collecting source files, warnings suppression, etc
DownloadProject442almost 3 years agoCMake module for downloading an external project's source at configure time
buildem27over 4 years agoModular CMake-based system that leverages ExternalProject to simplify builds
coveralls-cmake86over 6 years agoCoveralls JSON coverage generator and uploader for CMake
compatibility74over 9 years agoImproved version of cmake-compile-features
cmake-modules45almost 4 years agoLibFindMacros development repository and other cool CMake stuff
GreatCMakeCookOff42over 3 years agoThis is a repository of useful and less than useful CMake recipes
cppcheck-target-cmake18over 10 years agoPer-target CPPCheck for CMake
clang-tidy-target-cmake16over 10 years agoAdd clang-tidy checks to a target using CMake
cmake-unit36over 9 years agoUnit testing framework for CMake
cmake-header-language4over 10 years agoCMake macro to determine the language of a header file
tooling-cmake-util3over 10 years agoUtility and common library for all polysquare CMake tools
iwyu-target-cmake10over 10 years agoCMake integration for include-what-you-use
sanitizers-cmake378almost 2 years agoCMake module to enable sanitizers for binary targets
cmake-precompiled-header159almost 7 years agoVisual Studio and GCC precompiled header macro
CMakePCHCompiler104almost 7 years agoCMake precompiled headers via custom compiler extension - with reuse support!
CMake-codecov89about 2 years agoEnables code coverage and generates coverage reports with CMake targets
cmake-get63over 7 years agoGet dependencies in config or script mode
ixm106about 4 years agoMake CMake less painful when trying to write Modern Flexible CMake
CMakeCookingFlexible development environments for CMake projects with external dependencies

Awesome CMake / Toolchains

dockcross3,331almost 2 years agoCross compiling toolchains in Docker images
android-cmake1,222over 8 years agoCMake toolchain file and other scripts for the Android NDK
ios-cmake314about 6 years agoToolchain file and examples using CMake for iOS development
qt-android-cmake243over 4 years agoFor building and deploying Qt based apps on Android without QtCreator
mingw-w64-cmakeCMake-based MinGW-w64 Cross Toolchain - to build Windows binaries of mpv
cmake-avr175over 4 years agoCMake toolchain for AVR
arduino-cmake61over 5 years agoThis is the CMake project settings for the Arduino platform
polly861over 5 years agoCollection of CMake toolchain files and scripts for cross-platform build and CI testing
toolchains90almost 2 years agoFor cross-compiling with CMake. They are meant to be mainly used on ArchLinux
cmake9over 7 years agoCollection of CMake toolchain files, mostly for static linking
Arduino-CMake-Toolchain141over 3 years agoCMake toolchain for all official and 3rd party Arduino platforms

Awesome CMake / Examples / Templates

cmake-init912almost 3 years agoTemplate for reliable, cross-platform C++ project setup using CMake
android-cmake34over 9 years agoExamples of using package manager for an Android application
hunter-simple49over 7 years agoExample of downloading/installing dependencies using package manager
package-example398about 5 years agoConfig mode of find_package (examples for Stack Overflow question)
minimal_cmake_example191over 7 years agoMinimal CMake example, that covers dependencies and packaging
cmake-example142over 5 years agoExample project which demonstrates various CMake features
cmake-examples12,492over 2 years agoUseful CMake examples in a tutorial format
mini-cmake-qt212almost 3 years agoMinimal CMake template for Qt 5 projects
BASIS49about 5 years agoCMake makes it easy to create sharable software and libraries that work together
cpp-boilerplate313over 2 years agoTemplate that aims to be a reference for modern CMake and CI
how-to-export-cpp-library365over 5 years agoAn 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
modern-cmake-sample669over 5 years agoBest practices and proper usage of CMake by using targets
CMakeInstallExample36about 5 years agoInstallation example for a C++ project (Windows) with Cmake
cpp14-project-template65about 8 years agoA C++14 template with CI, tests, code coverage, docs and static analysis integration
cmake_templates128over 4 years agoTemplates for creating C++ libraries and executables (including conan)
cmake_snippets52about 7 years agoShort copy-pasteable CMake snippets
cmake-cookbook2,736over 5 years agoA huge CMake cookbook full of recipes
cpp-template51over 4 years agoA template C++ repository, using CMake and Catch
pitchfork1,123over 2 years agoA set of conventions for native C and C++ projects
cmake-examples1,177almost 2 years agoA collection of as simple as possible, modern CMake projects
cpp-project607almost 3 years agoBoiler plate for C++ projects - tests, CI, coverage, docs
ModernCppStarter4,526almost 2 years agoA template for modern C++ projects using CMake, CI, code coverage, clang-format, reproducible dependency management, tests using and much more
SeeMake5almost 2 years agoA feature-packed, ready-to-use CMake template with testing, static and dynamic checks, coverage reports, and more

Awesome CMake / Other

autocmake42over 3 years agoUsing a autocmake.yml file 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
UseLATEXCollection of CMake macros to simplify building LaTeX files
scikit-build494over 1 year agoImproved build system generator for CPython C extensions
node-cmake78over 5 years agoCMake-based build system for node.js native modules
cmake-font-lock45over 2 years agoAdvanced syntax coloring support for CMake scripts inside Emacs
autovala105about 8 years agoProgram that automatically generates CMake configuration files for your Vala project
catkin323almost 2 years agoCMake-based build system that is used to build all packages in Robot Operating System (ROS)
suitesparse-metis-for-windows450over 2 years agoCMake scripts for painless usage of SuiteSparse+METIS
osg-3rdparty-cmake182over 3 years agoCMake scripts for building OpenSceneGraph third party libraries
cmake-d66over 3 years agoCMake for D2
cmakeprojectmanager274over 2 years agoEnhanced CMake Project Manager plugin for Qt Creator
cmake-lint102over 7 years agoCheck for coding style issues in CMake files. cmakelint requires Python
git-cmake-format58almost 9 years agoIntegrate clang-format into your CMake project hosted in a git repository
configure-cmake85over 9 years agoconfigure-cmake is an autotools-style configure script for CMake-based projects
cmake-ast30over 4 years agoPython module to reduce a CMake file to an AST
cmake-checks-cache79over 4 years agoCMake checks cache helper modules
cmake_check20over 6 years agoStatic analysis (linter) for the CMake language (e.g. to enforce modern CMake rules)
cmake-language-server344almost 2 years agoCMake Language Server Protocol Implementation
cmake-maven-plugin76almost 2 years agoCMake integration for Maven builds
version-from-git4over 4 years agoBake git information into your binary

Backlinks from these awesome lists:

More related projects: