尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

cmkr是什么:为什么这个能自动写CMakeLists.txt的C++构建系统值得你关注(完整项目概览)

cmkr是什么:为什么这个能自动写CMakeLists.txt的C++构建系统值得你关注(完整项目概览) cmkr是什么为什么这个能自动写CMakeLists.txt的C构建系统值得你关注完整项目概览【免费下载链接】cmkrModern build system based on CMake and TOML.项目地址: https://gitcode.com/gh_mirrors/cm/cmkrcmkr读作 cmaker是一个基于 CMake 和 TOML 的现代 C 构建系统它解析一个简洁的cmake.toml文件自动为你生成规范、可读的CMakeLists.txt。你只需要 CMake 和一套 C 编译器就能使用它无需额外安装任何软件。对深受 CMake 脚本复杂语法困扰的开发者来说这是一个开箱即用的免费构建工具。为什么需要 cmkr告别 CMake 学习曲线写 CMake 和写 C 一样难但没人真的想学 CMake——构建系统理应直接能跑。CMake 本身是一门图灵完备的脚本语言大项目里它是利器但对简单项目却显得过度复杂。cmkr 的解法很聪明它不取代 CMake而是替你写 CMake。你的项目生成的CMakeLists.txt与 CMake 生态完全兼容随时可以脱离cmkr 回到纯 CMake没有任何锁定风险。 官方把 cmkr 称为 meta-meta-buildsystem并刻意设计了三层无缝体验不装新软件、改 TOML 自动重新生成、生成的 CMakeLists.txt 人类可读。更多设计思路见哲学页 docs/philosophy.md。3行TOML代替大段CMake上手有多简单这是 cmkr 最直观的魅力。一个最小项目只需要几行[project] name cmkr_for_beginners [target.hello_world] type executable sources [src/main.cpp]对应的大段project()、add_executable()、target_*命令全部由 cmkr 自动生成。对比官方示例 tests/basic/cmake.toml你会发现整个配置一目了然。从零开始两条命令引导Bootstrapcmkr 可以自举——从项目目录执行引导脚本后即可使用整个过程不改变你现有的 CMake 工作流获取cmake/cmkr.cmake引导脚本运行cmake -P cmkr.cmake完成引导修改cmake.toml然后照常执行cmake -B build和cmake --build build一旦引导完成之后每次修改cmake.toml只需正常构建cmkr 会自动检测并重新生成CMakeLists.txt。引导脚本仅约 250 行方便审计cmake.toml、生成的CMakeLists.txt和脚本本身都建议提交到版本控制。项目结构一览这个仓库里都有什么整个仓库非常精简结构清晰方便快速理解目录/文件作用cmake.toml项目自己的构建配置cmkr 吃自己的狗粮 src/include/cmkr 核心源码TOML 解析器与 CMake 生成器cmake/cmkr.cmake自举脚本负责下载并构建 cmkr 可执行文件tests/十几个真实场景示例条件编译、依赖获取、vcpkg 等docs/官方文档入门指南、TOML 参考、示例库third_party/仅 4 个 header-only 依赖轻量透明核心逻辑集中在 src/cmake_generator.cppTOML → CMake 生成约 1600 行与 src/project_parser.cppTOML 解析约 900 行源码总量仅 3000 余行读起来毫无压力。不只是Hello World功能亮点cmkr 的能力远超写个 Hello World以下特性都在测试目录中有完整示例多目标项目可执行文件、静态/动态库、接口库interface支持subdir组织多模块条件编译内置windows、linux、msvc、clang等预定义条件一行ptr64.sources就能按平台添加源文件见 tests/conditions/依赖管理[fetch-content]直接声明依赖并原生支持 vcpkg 工具链见 tests/fetch-content/ 与 tests/vcpkg/多语言支持 C/C、CUDA、Objective-C、Fortran、Swift 等十余种语言见 docs/cmake-toml.md 参考页️构建选项[options]声明缓存变量可用cmake -D选项名ON在配置期定制通配符与模板源文件支持 glob 模式还能配置文件模板替换见 tests/globbing/、tests/templates/完整选项速查请看官方参考文档 docs/cmake-toml.md示例索引见 docs/examples/index.md。企业级友好安全性与可复现性对引导 生成代码的组合心存疑虑的团队官方专门做了针对性设计详见 docs/philosophy.md 的 Enterprise 章节零额外依赖只需现有 CMake 与编译器不引入任何新的供应链风险可复现构建引导脚本默认锁定 cmkr 精确版本同一版本永远生成同一份CMakeLists.txt完整性校验可将版本标签固定为 commit hash 并做一致性检查CI 零开销引导过程在 CI 环境自动跳过cmkr 只运行在开发者机器上命令行工具把构建收进一个二进制除了项目内嵌使用你也可以把 cmkr 可执行文件加入PATH获得一个轻量命令行工具init脚手架建项目、gen生成 CMakeLists、build一键配置并编译、clean、install等覆盖了日常 C 开发的高频操作参数说明见 include/help.hpp。总结谁应该关注 cmkr✅适合你如果你受够了 CMake 的冗长语法想要声明式、可读性强的构建配置希望团队包括新手几分钟内就能正确搭建 C 项目想要保留完整 CMake 生态兼容性随时可平滑退出企业环境关注可审计、可复现、CI 无额外开销cmkr 证明了生成器路线在 C 构建领域的可行性用 TOML 的简洁表达意图用 CMake 的强大做底层两边的好处全都要。如果你正在寻找一个简单、快速、免费的 CMakeLists.txt 自动生成方案这个 C 构建系统值得现在就试试。【免费下载链接】cmkrModern build system based on CMake and TOML.项目地址: https://gitcode.com/gh_mirrors/cm/cmkr创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表