CMake

Awesome CMake Awesome

>精选的精选列表 CMake 脚本,模块,示例等

非常欢迎你的贡献(首先看看 https://github.com/onqtam/awesome-cmake/blob/master/CONTRIBUTING.md).

Community

Resources

  • Latest Documentation
  • FAQ
  • Wiki
  • Webinars
  • Web Book - CGold:Hitchhiker Guide 到了CMake. [[BSD2]] [BSD2子句]
  • Modern CMake - 现代CMake PDF 和样本由创作者 cmakepp , [[W]] [带]
  • Article - 轻松支持CMake安装和find_package().
  • Article - Easy dependency management for C++ with CMake and Git.
  • Article - 使用CMake选择加入标题的库.
  • Article - 现代CMake的终极指南.
  • Article - 常见的CMake反模式列表(从2013年开始,但仍然相关).
  • Article - 如何构建基于CMake的项目.
  • Article - 在15分钟内学习CMake的脚本语言.
  • Article - CMake的架构.
  • Lecture - 有效的CMake - 作者:Daniel Pfeifer,C ++ Now 2017.
  • Article - 使用CMake构建跨平台CUDA应用程序.
  • Tutorial - 了解CMake的逐步指南.
  • Article + Lecture - 拥抱现代CMake - 由Stephen Kelly.
  • Lecture - 模块化设计的现代CMake - 作者:Mathieu Ropert,CppCon 2017.
  • Article - 现代C ++ CI(虽然它使用非现代的CMake,如include_directories().
  • Article - 现在是做正确的时间(关于CMake的最佳文章之一). *文章 - 关于CMake的系列文章 - 作者:MartinHořeňovský
  • Lecture - CMake简介 - 作者:Florent Castelli,C ++ Sweden 2018.
  • Article - 一些漂亮和准确的CMake技巧.
  • Article - 图书馆开发人员的现代CMake.
  • Article - 有效的现代CMake:Manuel Binna对大多数良好实践的总结.
  • Book - 专业CMake:实用指南(付费).
  • Book - 有效的CMake:写出更好的CMake的实用建议(尚未完全编写).
  • Web Book - 现代CMake简介.
  • YouTube Series - 如何做好. [[CC0-1.0]] [CC0-1.0]
  • Lecture - 更现代的CMake(slides & examples) - Deniz Bahadir,Meeting C ++ 2018.
  • Article - 修改默认的CMake构建类型/标志,工具链和补丁 - 哦,我的! - 克里斯蒂安亚当.

Package Management / Build Systems

  • hunter - C ++的跨平台包管理器(基于CMake ExternalProject). [[BSD2]] [BSD2子句]
  • cget - CMake包检索. 这可用于下载和安装CMake软件包. [[BOOST]] [BOOST]
  • cppan - C ++ Archive Network - 基于CMake的C ++ Package Manager,用C ++实现14. [[APACHE2]] [APACHE2]
  • cpm - 基于CMake和Git的C ++包管理器. [[MIT]] [MIT]
  • conan - Conan C ++ Package Manager,用Python实现,具有CMake集成后端. [[MIT]] [MIT]
  • fips - 用于分布式多平台C / C ++项目的高级构建系统/依赖关系管理. [[MIT]] [MIT]
  • Ninja - 在两个主要方面构建与其他系统不同的系统:它旨在使其输入文件由更高级别的构建系统(如CMake)生成,并且旨在尽可能快地运行构建. [[APACHE2]] [APACHE2]
  • vcpkg - 获取和构建C ++开源库的工具. 在内部使用CMake作为构建脚本语言. [[MIT]] [MIT]
  • pmm - PMM是CMake的一个模块,用于管理包管理器. [[MIT]] [MIT]
  • cpm - 免安装的CMake + git依赖管理器. [[MIT]] [MIT]

Modules

  • cmake-modules - Ryan Pavlik 的CMake模块集合. 有许多查找模块,特别是虚拟现实和物理模拟,一些实用程序模块,以及CMake本身的一些补丁或解决方法. [[BOOST]] [BOOST]
  • cmake-modules - 这是其他CMake模块的集合. 他们大多数来自瑞安帕夫利克. [[BOOST]] [BOOST]
  • CMake - Eyescale 常见的CMake模块. [[BSD3]] [BSD3子句]
  • sdl2-cmake-scripts - 用于查找SDL2,SDL2_image和SDL2_ttf库和标头的CMake脚本. [[BSD2]] [BSD2子句]
  • vfxcmake - CMake查找常用vfx软件和常规CMake实用程序代码的模块. [[LGPL]] [LGPL]
  • cmake-modules - 一些科学图书馆的CMake模块. [[BSD2]] [BSD2子句]
  • cgcmake - 用于与计算机图形相关的常见应用的CMake模块. [[MIT]] [MIT]
  • FindMathematica - Mathematica的CMake模块. [[W]] [带]
  • extra-cmake-modules - KDE 用于CMake的额外模块和脚本. [[BSD3]] [BSD3子句]
  • FindICU.cmake - CMake模块,用于查找Unicode(ICU)库的国际组件. [[BSD2]] [BSD2子句]
  • FindTBB - 用于英特尔线程构建模块的CMake查找模块. [[MIT]] [MIT]
  • FindWiX - 用于建筑的CMake模块 Windows Installer 包裹 WiX toolset . [[BSD3]] [BSD3子句]
  • FindIDL - 用于建筑的CMake模块 IDL 使用MIDL生成CLR DLL的文件 Tlbimp , [[W]] [带]
  • cmake-modules - hanjianwei 的CMake模块集合. [[MIT]] [MIT]
  • YCM - 额外的CMake模块 Yet Another Robot Platform 和朋友. [[BSD3]] [BSD3子句]
  • CMakeCM - CMake社区模块. [NO LICENSE]
  • Metabench - 用于编译时微基准测试的CMake模块. [[BOOST]] [BOOST]

Utility Scripts

它们提供了广泛的功能 - 从处理编译器标志到使用工具. 有些还包含模块.

Toolchains

Examples / Templates

Other

  • autocmake - 使用autocmake.yml文件 Autocmake 将CMake构建块组成一个CMake项目并生成CMakeLists.txt以及一个设置脚本,该脚本充当CMakeLists.txt的前端. [[BSD3]] [BSD3子句]
  • UseLATEX - 收集CMake宏以简化构建LaTeX文件. [[BSD3]] [BSD3子句]
  • python-cmake-buildsystem - CPython的替换构建系统. [[APACHE2]] [APACHE2]
  • scikit-build - 改进了CPython C扩展的构建系统生成器. [[MIT]] [MIT]
  • protobuf-cmake - 针对Google Protobufs的CMake构建支持. [[BSD3]] [BSD3子句]
  • node-cmake - node.js本机模块的基于CMake的构建系统. [[ISC]] [ISC]
  • cmake-font-lock - 为Emacs中的CMake脚本提供高级语法着色支持. [[GPL]] [GPL]
  • stm32-cmake - 用于开发STM32-ST的ARM Cortex-M0(3,4,7)MCU的应用程序. [[MIT]] [MIT]
  • autovala - 为Vala项目自动生成CMake配置文件的程序. [[GPL]] [GPL]
  • catkin - 基于CMake的构建系统,用于构建机器人操作系统(ROS)中的所有软件包. [[BSD3]] [BSD3子句]
  • suitesparse-metis-for-windows - 用于无痛使用SuiteSparse + METIS的CMake脚本. [[BSD3]] [BSD3子句]
  • cython-cmake-example - 使用CMake构建Cython模块的实用程序和示例. [[LICENSE]](https://github.com/thewtex/cython-cmake-example/blob/master/LICENSE
  • osg-3rdparty-cmake - 用于构建OpenSceneGraph第三方库的CMake脚本. `[MIXED LICENSE]
  • cmake-d - 针对D2的CMake. [[MY]] [MY]
  • cmakeprojectmanager2 - 针对Qt Creator的增强型CMake项目管理器插件. [NO LICENSE]
  • cmake-lint - 检查CMake文件中的编码样式问题. cmakelint需要Python. [[APACHE2]] [APACHE2]
  • git-cmake-format - 将clang格式集成到git存储库中托管的CMake项目中. [[LICENSE]](https://github.com/kbenzie/git-cmake-format/blob/master/license.txt
  • configure-cmake - configure-cmake是基于CMake的项目的autotools风格的配置脚本. [[CC0-1.0]] [CC0-1.0]
  • tbb - 使用CMake构建线程构建块. [[APACHE2]] [APACHE2]
  • sqlite.cmake.build - 用于sqlite合并的CMake脚本. [NO LICENSE]
  • cmake-ast - 用于将CMake文件减少为AST的Python模块. [[MIT]] [MIT]
  • cmake_format - CMakeLists.txt文件的源代码格式化程序. [[GPL]] [GPL]
  • cmake-checks-cache - CMake检查缓存助手模块. [[MIT]] [MIT]
  • cmrc - 单个CMake脚本中的资源编译器(将任意数据编译到程序中). [[MIT]] [MIT]
  • cmake_check - CMake语言的静态分析(linter)(例如,强制执行现代CMake规则). [[MIT]] [MIT]

License

这是在下发布 Creative Commons Attribution 4.0 International 许可证(CC BY 4.0).

[ISC]:https://opensource.org/licenses/ISC [GPL]:https://www.gnu.org/licenses/gpl-3.0.html [GPL2]:https://www.gnu.org/licenses/old-licenses/gpl-2.0.html [LGPL]:https://www.gnu.org/licenses/lgpl-3.0.en.html [麻省理工学院]:https://opensource.org/licenses/MIT [BOOST]:http://www.boost.org/LICENSE_1_0.txt

[BSD-3-Clause]:https://opensource.org/licenses/BSD-3-Clause [APACHE2]:http://www.apache.org/licenses/LICENSE-2.0 [CC0-1.0]:https://creativecommons.org/publicdomain/zero/1.0/ [MPL]:https://www.mozilla.org/en-US/MPL/2.0/ [UNLICENSE]:https://unlicense.org/