更新项目结构,添加新依赖,优化交互模式和命令行参数处理
All checks were successful
Rust Cross-Compile and Release / build_and_release (push) Successful in 8m40s

This commit is contained in:
Yakumo Hokori
2026-01-15 16:10:18 +08:00
parent ae95cfda79
commit 34f8384768
4 changed files with 534 additions and 111 deletions

View File

@@ -1,71 +1,116 @@
# CMake项目生成工具 (ccmk)
# ccmk - CMake项目生成工具
一个简单的命令行工具用于快速生成CMake项目结构。
一个简单的命令行工具,用于快速生成 CMake 项目结构。
## 功能
- 交互式创建CMake项目
- 支持C和C++项目
- 支持可执行文件和静态库项目
- **交互式模式** - 无参数运行时,按提示选择配置
- **命令行模式** - 直接通过参数指定配置
- 支持 C 和 C++ 项目
- 支持可执行文件、静态库、共享库
- 自动创建项目目录结构
- 自动生成CMakeLists.txt和示例源代码
- 自动生成 CMakeLists.txt 和示例源代码
- 自动处理项目名中的特殊字符
## 安装
1. 确保已安装Rust工具链
2. 克隆本项目
3. 运行以下命令安装:
```bash
cargo install --path .
```
## 使用方法
1. 运行命令:
### 交互式模式
直接运行,按提示操作:
```bash
ccmk
```
2. 按照提示输入:
- 项目名称(会自动处理特殊字符)
- 编程语言C或C++
- 项目类型(可执行文件或静态库)
- C++标准版本如果选择C++
### 命令行模式
3. 工具会自动创建项目目录和文件
```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.cmain.cpp
└── main.cmain.cpp
```
### 库类型 (static-lib / shared-lib)
```
项目名/
├── CMakeLists.txt
├── include/
├── src/
│ └── main.c 或 main.cpp
└── README.md
```
## 示例
```bash
### 交互式模式
```
$ ccmk
请输入项目名称My Project
请选择编程语言C++
请选择项目类型Static Library
请选择项目类型Shared Library
请选择C++标准版本17
✅ 项目已成功创建!
项目已成功创建!
📁 项目结构:
- MyProject/
├── CMakeLists.txt
├── include/
── src/
└── main.cpp
── src/
└── main.cpp
└── README.md
```
## 注意事项
- 项目名中的特殊字符(如空格、标点符号)会被自动移除
- 如果清理后的项目名为空,会使用默认名称"cmake_project"
- 生成的CMakeLists.txt使用CMake 3.14作为最低版本要求
- 项目名中的特殊字符会被自动移除(仅保留字母、数字、下划线、连字符)
- 如果清理后的项目名为空,会使用默认名称 `cmake_project`
- 库类型项目会自动生成 `GNUInstallDirs` 安装配置
- CMakeLists.txt 使用 CMake 3.20 作为最低版本要求