All checks were successful
Rust Cross-Compile and Release / build_and_release (push) Successful in 8m40s
117 lines
2.4 KiB
Markdown
117 lines
2.4 KiB
Markdown
# 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 作为最低版本要求
|