更新项目结构,添加新依赖,优化交互模式和命令行参数处理
All checks were successful
Rust Cross-Compile and Release / build_and_release (push) Successful in 8m40s
All checks were successful
Rust Cross-Compile and Release / build_and_release (push) Successful in 8m40s
This commit is contained in:
97
README.md
97
README.md
@@ -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.c或main.cpp
|
||||
└── main.c 或 main.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 作为最低版本要求
|
||||
|
||||
Reference in New Issue
Block a user