Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

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

License

NotificationsYou must be signed in to change notification settings

onqtam/awesome-cmake

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A curated list of awesomeCMake scripts, modules, examples and others

Your contributions are highly welcome (first seeCONTRIBUTING.md).

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

Contents

Community

Resources

  • Latest Documentation
  • FAQ
  • Wiki
  • Webinars
  • Web Book - CGold: The Hitchhiker’sGuide to the CMake.[BSD2]
  • Modern CMake - Modern CMakePDF and samples by the creator ofcmakepp.[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 theCreative Commons Attribution 4.0 International License(CC BY 4.0).

Releases

No releases published

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp