# ccmk - CMake项目生成工具 一个简单的命令行工具,用于快速生成 CMake 项目结构。 ## 功能 - **交互式模式** - 无参数运行时,按提示选择配置 - **命令行模式** - 直接通过参数指定配置 - 支持 C 和 C++ 项目 - 支持可执行文件、静态库、共享库 - 自动创建项目目录结构 - 自动生成 CMakeLists.txt 和示例源代码 - 自动处理项目名中的特殊字符 ## 安装 ```bash cargo install --path . ``` ## 使用方法 ### 交互式模式 直接运行,按提示操作: ```bash ccmk ``` ### 命令行模式 ```bash ccmk -n 项目名 -l cpp -p exe -c 17 -o ./output ``` ### 参数说明 | 参数 | 简写 | 说明 | 默认值 | |------|------|------|--------| | `--name` | `-n` | 项目名称 | 交互式必填 | | `--lang` | `-l` | 语言: `c` 或 `cpp` | `cpp` | | `--project-type` | `-p` | 类型: `exe`, `static-lib`, `shared-lib` | `exe` | | `--cxx-standard` | `-c` | C++ 标准: `11`, `14`, `17`, `20`, `23` | `17` | | `--output` | `-o` | 输出目录 | 当前目录 | | `--force` | - | 强制覆盖已存在的目录 | - | ### 使用示例 ```bash # 创建 C++ 可执行项目 ccmk -n myapp -l cpp -p exe # 创建 C 静态库 ccmk -n mylib -l c -p static-lib # 创建 C++ 共享库,使用 C++20 标准 ccmk -n mylib -l cpp -p shared-lib -c 20 # 指定输出目录 ccmk -n myproject -o /path/to/output # 覆盖已存在的目录 ccmk -n myproject --force ``` ## 生成的项目结构 ### 可执行文件 ``` 项目名/ ├── CMakeLists.txt ├── include/ └── src/ └── main.c 或 main.cpp ``` ### 库类型 (static-lib / shared-lib) ``` 项目名/ ├── CMakeLists.txt ├── include/ ├── src/ │ └── main.c 或 main.cpp └── README.md ``` ## 示例 ### 交互式模式 ``` $ ccmk 请输入项目名称:My Project 请选择编程语言:C++ 请选择项目类型:Shared Library 请选择C++标准版本:17 项目已成功创建! 📁 项目结构: - MyProject/ ├── CMakeLists.txt ├── include/ ├── src/ │ └── main.cpp └── README.md ``` ## 注意事项 - 项目名中的特殊字符会被自动移除(仅保留字母、数字、下划线、连字符) - 如果清理后的项目名为空,会使用默认名称 `cmake_project` - 库类型项目会自动生成 `GNUInstallDirs` 安装配置 - CMakeLists.txt 使用 CMake 3.20 作为最低版本要求