Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
awesome-cmake
A curated list of awesome CMake resources, scripts, modules and examples.
https://github.com/onqtam/awesome-cmake
Last synced: 3 days ago
JSON representation
-
Community
-
Resources
- Latest Documentation
- FAQ
- Wiki
- Webinars
- Tutorial - Modern CMake tutorials part1: CMake basics
- Article - Easily supporting CMake install and find_package().
- Article - Easy dependency management for C++ with CMake and Git.
- Article - Opt-in header-only libraries with CMake.
- Article - Ultimate Guide to Modern CMake.
- Article - A list of common CMake antipatterns (from 2013 but still relevant).
- Article - How to Build a CMake-Based Project.
- Article - Learn CMake's Scripting Language in 15 Minutes.
- Article - The architecture of CMake.
- Lecture - Effective CMake - by Daniel Pfeifer, C++Now 2017.
- Article - Building Cross-Platform CUDA Applications with CMake.
- Tutorial - A step-by-step guide for understanding CMake.
- Article + Lecture - Embracing Modern CMake - by Stephen Kelly.
- Lecture - Modern CMake for Modular Design - by Mathieu Ropert, CppCon 2017.
- Article - It's Time To Do CMake Right (one of the best articles about CMake).
- Basic CMake usage
- Basic CMake, part 2: libraries
- Lecture - Introduction to CMake - by Florent Castelli, C++ Sweden 2018.
- Article - Modern CMake for Library Developers.
- Article - Effective Modern CMake: a great summary of most good practices - by Manuel Binna.
- Book - Professional CMake: A Practical Guide (paid).
- Book - Effective CMake: Practical Advice to Write Better CMake (not fully written yet).
- Web Book - An Introduction to Modern CMake.
- YouTube Series - How to CMake Good. [```[CC0-1.0]```][CC0-1.0]
- Lecture - More Modern CMake ([slides & examples](https://github.com/Bagira80/More-Modern-CMake))- by Deniz Bahadir, Meeting C++ 2018.
- Lecture - Oh No! More Modern CMake ([slides](https://github.com/Bagira80/More-Modern-CMake/raw/master/OhNoMoreModernCMake.pdf))- by Deniz Bahadir, Meeting C++ 2019.
- Article - Modifying the default CMake build types/flags, toolchains and patches - Oh my! - by Cristian Adam.
- Article - Easily supporting CMake install and find_package().
- Article - Easy dependency management for C++ with CMake and Git.
- Article - How to Build a CMake-Based Project.
- Article - Learn CMake's Scripting Language in 15 Minutes.
- Article - The architecture of CMake.
- Article - Building Cross-Platform CUDA Applications with CMake.
- Article - Some nice and accurate CMake tips.
- Article - Some nice and accurate CMake tips.
-
Package Management / Build Systems
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cpm - A setup-free CMake + git dependency manager. [```[MIT]```][MIT]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- vcpkg - A tool to acquire and build C++ open source libraries. Uses CMake internally as a build script language. [```[MIT]```][MIT]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
- cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [```[APACHE2]```][APACHE2]
-
Utility Scripts
- CMakeCooking - Flexible development environments for CMake projects with external dependencies
- CMake-codecov - Enables code coverage and generates coverage reports with CMake targets. [```[GPL]```][GPL]
- ixm - Make CMake less painful when trying to write Modern Flexible CMake. [```[MIT]```][MIT]
-
Toolchains
- mingw-w64-cmake - CMake-based MinGW-w64 Cross Toolchain - to build Windows binaries of mpv. [```[ISC]```][ISC]
- cmake - Collection of CMake toolchain files, mostly for static linking. [```[APACHE2]```][APACHE2]
-
Other
- UseLATEX - Collection of CMake macros to simplify building LaTeX files. [```[BSD3]```][BSD-3-Clause]
- autocmake - Using a autocmake.yml file [Autocmake](http://autocmake.readthedocs.io/en/latest/) 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]```][BSD-3-Clause]
-
Examples / Templates
- android-cmake - Examples of using [ruslo/hunter](https://github.com/ruslo/hunter) package manager for an Android application. [```[BSD2]```][BSD-2-Clause]
- hunter-simple - Example of downloading/installing dependencies using [ruslo/hunter](https://github.com/ruslo/hunter) package manager. [```[BSD2]```][BSD-2-Clause]
Programming Languages
Categories
Sub Categories