All Projects → onqtam → Awesome Cmake

onqtam / Awesome Cmake

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

Projects that are alternatives of or similar to Awesome Cmake

GreatCMakeCookOff
Bunch of CMake pain in the baker
Stars: ✭ 38 (-99.04%)
Mutual labels:  cmake-scripts, cmake-modules
ycm
Extra CMake Modules for YARP and friends
Stars: ✭ 42 (-98.94%)
Mutual labels:  cmake-resources, cmake-modules
ixm
Make CMake less painful when trying to write Modern Flexible CMake
Stars: ✭ 99 (-97.51%)
Mutual labels:  cmake-scripts, cmake-modules
vatsinator-legacy
An open-source Vatsim monitor
Stars: ✭ 12 (-99.7%)
Mutual labels:  cmake-scripts, cmake-modules
catch cmake coverage
Integration of Catch, CMake and CMake CodeCoverage module and basic examples in C++.
Stars: ✭ 30 (-99.24%)
Mutual labels:  cmake, cmake-modules
Reproc
A cross-platform (C99/C++11) process library
Stars: ✭ 325 (-91.81%)
Mutual labels:  cmake
Magnum
Lightweight and modular C++11 graphics middleware for games and data visualization
Stars: ✭ 3,728 (-6.1%)
Mutual labels:  cmake
Mlib
Library of generic and type safe containers in pure C language (C99 or C11) for a wide collection of container (comparable to the C++ STL).
Stars: ✭ 321 (-91.91%)
Mutual labels:  list
Suitesparse Metis For Windows
CMake scripts for painless usage of SuiteSparse+METIS from Visual Studio and the rest of Windows/Linux/OSX IDEs supported by CMake
Stars: ✭ 322 (-91.89%)
Mutual labels:  cmake
Obengine
2D Game Engine with Lua Scripting made on top of SFML !
Stars: ✭ 335 (-91.56%)
Mutual labels:  cmake
List
A curated list of awesome Yii Framework extensions, tutorials and other nice things
Stars: ✭ 344 (-91.34%)
Mutual labels:  list
Llvm Pass Skeleton
example LLVM pass
Stars: ✭ 331 (-91.66%)
Mutual labels:  cmake
Old Shashlik
Android Simulated Environment
Stars: ✭ 326 (-91.79%)
Mutual labels:  cmake
Mcpelauncher Manifest
The main repository for the Linux and Mac OS Bedrock edition Minecraft launcher.
Stars: ✭ 338 (-91.49%)
Mutual labels:  cmake
Cmake Modules
Additional CMake functionality. Most of the modules are from Ryan Pavlik (https://github.com/rpavlik/cmake-modules)
Stars: ✭ 323 (-91.86%)
Mutual labels:  cmake
Awesome Prolog
Curated list of Prolog packages and resources
Stars: ✭ 342 (-91.39%)
Mutual labels:  list
Anese
Another NES Emulator - written for fun & learning - first implementation of wideNES
Stars: ✭ 323 (-91.86%)
Mutual labels:  cmake
Promise Fun
Promise packages, patterns, chat, and tutorials
Stars: ✭ 3,779 (-4.81%)
Mutual labels:  list
Awesome Steam
😎 A curated list of packages and resources regarding Steam development
Stars: ✭ 342 (-91.39%)
Mutual labels:  list
Cpp Project
Boiler plate template for C++ projects, with CMake, Doctest, Travis CI, Appveyor, Github Actions and coverage reports.
Stars: ✭ 328 (-91.74%)
Mutual labels:  cmake

Awesome CMake Awesome

A curated list of awesome CMake scripts, modules, examples and others

Your contributions are highly welcome (first see CONTRIBUTING.md).

There is another file NonModernCMake.md with other links worth taking a look, but they use obsolete practices which are considered non-modern - like not using target_*-based dependency management - see #16 and #42 for more details.

Contents

Community

Resources

  • Latest Documentation
  • FAQ
  • Wiki
  • Webinars
  • Web Book - CGold: The Hitchhiker’s Guide to the CMake. [BSD2]
  • Modern CMake - Modern CMake PDF and samples by the creator of cmakepp. [MIT]
  • 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).
  • Articles - A series on CMake - by Martin Hořeňovský
  • Lecture - Introduction to CMake - by Florent Castelli, C++ Sweden 2018.
  • Article - Some nice and accurate CMake tips.
  • 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]
  • Lecture - More Modern CMake (slides & examples)- by Deniz Bahadir, Meeting C++ 2018.
  • Lecture - Oh No! More Modern CMake (slides)- by Deniz Bahadir, Meeting C++ 2019.
  • Article - Modifying the default CMake build types/flags, toolchains and patches - Oh my! - by Cristian Adam.
  • Tutorial - Tutorial and Example on How to Properly Use Modern CMake.

Package Management / Build Systems

  • hunter - Cross-platform package manager for C++ (based on CMake ExternalProject). [BSD2]
  • cget - CMake package retrieval. This can be used to download and install CMake packages. [BOOST]
  • cppan - C++ Archive Network - C++ Package Manager based on CMake, implemented in C++14. [APACHE2]
  • cpm - C++ Package Manager based on CMake and Git. [MIT]
  • conan - Conan C++ Package Manager, implemented in Python and has a CMake integration backend. [MIT]
  • fips - High-level build system/dependency management for distributed, multi-platform C/C++ projects. [MIT]
  • Ninja - 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. [APACHE2]
  • vcpkg - A tool to acquire and build C++ open source libraries. Uses CMake internally as a build script language. [MIT]
  • pmm - PMM is a module for CMake that manages... package managers. [MIT]
  • cpm - A setup-free CMake + git dependency manager. [MIT]

Modules

Utility Scripts

These provide a wide range of functionality - from dealing with compiler flags to using tools. Some also contain modules.

Toolchains

Examples / Templates

Other

License

This is released under the Creative Commons Attribution 4.0 International License (CC BY 4.0).

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].