mirror of
https://github.com/onqtam/awesome-cmake.git
synced 2025-12-16 20:17:05 +03:00
9fe069cf8829998fe2615e1289deab4df2bee03c
tiny rework - based on comments in this pull request - https://github.com/sindresorhus/awesome/pull/779
tiny rework - based on comments in this pull request - https://github.com/sindresorhus/awesome/pull/779
tiny rework - based on comments in this pull request - https://github.com/sindresorhus/awesome/pull/779
Awesome CMake 
A curated list of awesome CMake scripts, modules, examples and others.
Contents
- Articles
- Package Management
- Build Systems
- Modules
- Utility Scripts
- Toolchains
- Tutorials / Examples / Templates
- Other
Articles
- ruslo/CGold - The Hitchhiker’s Guide to the CMake. BSD2
- Easy dependency management for C++ with CMake and Git.
- 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++.
- A list of common CMake antipatterns (from 2013 but still relevant).
Package Management
- 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 - 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
- floooh/fips - High-level build system/dependency management for distributed, multi-platform C/C++ projects. MIT
Build Systems
- Ninja - Small build system with a focus on speed. It differs from other build systems 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. APACHE 2
Modules
- rpavlik/cmake-modules - 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 - 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
Utility Scripts
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 - 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 - 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 - 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 - 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 - Collection of C++ and CMake utility libraries. APACHE 2
Toolchains
- dockcross/dockcross - Cross compiling toolchains in Docker images. MIT
- taka-no-me/android-cmake - CMake toolchain file and other scripts for the Android NDK. BSD3
- cristeab/ios-cmake - 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
Tutorials / Examples / Templates
- 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 - 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 (examples for this Stack Overflow question). [NO LICENSE]
- OutOfOrder/CMakeTemplates - Set of initial CMake templates that I use for every game port I work on. [NO LICENSE]
- krux02/minimal_cmake_example - 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 - 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 - 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 - Simple template to start quickly a C++ project managed by CMake. [NO LICENSE]
Other
- 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 - Collection of CMake macros to simplify building LaTeX files. BSD3
- python-cmake-buildsystem/python-cmake-buildsystem - Replacement buildsystem for CPython. APACHE 2
- scikit-build/scikit-build - Improved build system generator for CPython C extensions. MIT
- 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 - Program that automatically generates CMake configuration files for your Vala project. GPL
- ros/catkin - 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
Contribute
Your contributions are highly welcome (first see CONTRIBUTING.md).
For more awesome lists, see awesome.
License
This is released under the Creative Commons Attribution 4.0 International License (CC BY 4.0).
Description
Languages
Markdown
100%