📄️ 用 kmcmake 管理依赖:第三方库集成实践
kmcmake 通过集中式变量 KMCMAKEDEPSLINK 简化依赖管理——将系统库、第三方包和自定义依赖统一整合到单一配置中。以下以 gflags(轻量级命令行参数库) 为例,演示 kmcmake 标准化的依赖集成流程,完全贴合项目模板的使用模式。
📄️ 用 kmcmake 自定义 C++ 编译标志:预设 + 项目专属调整
kmcmake 采用「预设 + 自定义」的设计简化 C++ 编译标志管理:为主流编译器(GCC/Clang/MSVC)和 CPU 架构预定义生产级标志,同时支持在专属文件中进行项目定制——无需分散的标志定义或原生 CMake 冗余代码。
📄️ kmcmake 生成的 version.h:项目与构建环境元数据桥梁
kmcmake 会在构建过程中自动从 myproject/version.h.in 模板生成 version.h 头文件——作为构建系统与应用代码之间的核心桥梁。它将关键的项目、编译器和环境元数据封装为宏定义,消除「隐藏」控制逻辑(如分散的 #define 指令),让构建上下文清晰可见。
📄️ kmcmake 生成的导出配置:myproject_config.cmake
kmcmake 通过标准化的 CMake 导出系统简化项目共享——由 cmake/myprojectconfig.cmake.in(模板文件)和生成的 myprojectconfig.cmake(随项目安装)提供支持。该配置让外部项目可通过 find_package() 无缝引用你的 kmcmake 构建库,完全遵循现代 CMake 约定,兼顾一致性与易用性。
📄️ kmcmake 生成的根目录 CMakeLists.txt:项目构建流程与结构
根目录 CMakeLists.txt(由 kmcmake 自动生成)是项目构建过程的中央控制枢纽。它遵循严格的「阶段化工作流」,既贴合 CMake 原生逻辑,又封装了 kmcmake「约定优于配置」的设计理念。每个章节都有明确用途——从项目初始化到目标导出供外部使用——几乎无需手动修改。
📄️ kmcmake 生成的 CMakePresets.json:灵活无锁的构建变体配置
kmcmake 生成的默认 CMakePresets.json 是管理构建配置的轻量且高度可扩展基础,完美契合你的「可选启用」设计理念:开箱即提供合理默认值,同时完全保持无偏见和无锁状态,支持用户按需定制。不绑定特定包管理器(kmpkg/vcpkg)或工具链——用户可完全掌控以适配自身工作流。