feat: 添加 Linux GUI 版本构建支持
新增文件: - icons/icon.png: 应用图标(512x512 RGBA PNG 格式) 变更: - build-linux-package.sh: 更新脚本支持 GUI 版本编译 - 新增 cargo build --release --features gui - 复制 GUI 程序和图标到 dist 目录 - 更新 README 包含 GUI 运行说明 构建结果: - CLI: target/release/impress_asr (2.1MB) - GUI: target/release/impress_asr_gui (9.8MB) - 打包:dist/impress-asr-linux-x64-20260521_201229.tar.gz (4.7MB) Linux 运行方式: - GUI: ./impress_asr_gui - CLI: ./impress_asr --help
This commit is contained in:
parent
87ad8b4576
commit
1a78e4e23f
@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
# Linux 编译并打包脚本
|
||||
# 编译 impress_asr_input_rust 项目并打包
|
||||
# 编译 impress_asr_input_rust 项目并打包(包含 CLI 和 GUI 版本)
|
||||
|
||||
set -e
|
||||
|
||||
@ -19,13 +19,13 @@ echo "=============================================="
|
||||
|
||||
# 清理旧的 dist 目录
|
||||
echo ""
|
||||
echo "[1/5] 清理旧的 dist 目录..."
|
||||
echo "[1/6] 清理旧的 dist 目录..."
|
||||
rm -rf "$DIST_DIR"
|
||||
mkdir -p "$DIST_DIR"
|
||||
|
||||
# 构建前端
|
||||
echo ""
|
||||
echo "[2/5] 构建前端..."
|
||||
echo "[2/6] 构建前端..."
|
||||
cd "$PROJECT_DIR/web"
|
||||
npm run build
|
||||
cd "$PROJECT_DIR"
|
||||
@ -37,16 +37,24 @@ ls -lh "$PROJECT_DIR/web/dist/"
|
||||
|
||||
# 编译 CLI 程序
|
||||
echo ""
|
||||
echo "[3/5] 编译 CLI 程序..."
|
||||
echo "[3/6] 编译 CLI 程序..."
|
||||
cargo build --release
|
||||
|
||||
# 编译 GUI 程序
|
||||
echo ""
|
||||
echo "[4/6] 编译 GUI 程序..."
|
||||
cargo build --release --features gui
|
||||
|
||||
# 复制必要文件
|
||||
echo ""
|
||||
echo "[4/5] 复制必要文件到 dist 目录..."
|
||||
echo "[5/6] 复制必要文件到 dist 目录..."
|
||||
cp "$PROJECT_DIR/target/release/impress_asr" "$DIST_DIR/"
|
||||
cp "$PROJECT_DIR/target/release/impress_asr_gui" "$DIST_DIR/"
|
||||
cp -r "$PROJECT_DIR/web/dist" "$DIST_DIR/"
|
||||
cp -r "$PROJECT_DIR/models" "$DIST_DIR/" 2>/dev/null || mkdir -p "$DIST_DIR/models"
|
||||
cp "$PROJECT_DIR/resources/configs/default.toml" "$DIST_DIR/config.toml" 2>/dev/null || true
|
||||
cp "$PROJECT_DIR/icons/icon.png" "$DIST_DIR/" 2>/dev/null || true
|
||||
cp "$PROJECT_DIR/icons/tray-icon.png" "$DIST_DIR/" 2>/dev/null || true
|
||||
|
||||
# 创建 README.md
|
||||
cat > "$DIST_DIR/README.md" << 'README_EOF'
|
||||
@ -61,8 +69,14 @@ cat > "$DIST_DIR/README.md" << 'README_EOF'
|
||||
```
|
||||
|
||||
2. **运行程序**
|
||||
|
||||
**GUI 版本(推荐)**
|
||||
```bash
|
||||
./impress_asr_gui
|
||||
```
|
||||
|
||||
**CLI 版本**
|
||||
```bash
|
||||
# CLI 版本
|
||||
./impress_asr --help
|
||||
|
||||
# 录音
|
||||
@ -76,7 +90,10 @@ cat > "$DIST_DIR/README.md" << 'README_EOF'
|
||||
|
||||
| 文件 | 说明 |
|
||||
|------|------|
|
||||
| `impress_asr_gui` | GUI 桌面应用 |
|
||||
| `impress_asr` | CLI 命令行工具 |
|
||||
| `icon.png` | 应用图标 |
|
||||
| `tray-icon.png` | 托盘图标 |
|
||||
| `config.toml` | 配置文件(可选) |
|
||||
| `models/` | 模型文件目录 |
|
||||
| `dist/` | 前端资源目录 |
|
||||
@ -85,9 +102,11 @@ cat > "$DIST_DIR/README.md" << 'README_EOF'
|
||||
|
||||
- **操作系统**:Linux x64 (glibc 2.28+)
|
||||
- **支持的系统**:Ubuntu 18.04+, Debian 10+, CentOS 8+, RHEL 8+
|
||||
- **可选依赖**:
|
||||
- **依赖库**:
|
||||
- `libgtk-3-0` - GTK3 图形界面
|
||||
- `libwebkit2gtk-4.1` - WebKit 浏览器引擎
|
||||
- `libappindicator3-1` - 系统托盘支持
|
||||
- `libasound2` - 音频支持
|
||||
- `libonnxruntime` - ONNX 模型推理
|
||||
|
||||
## ❓ 常见问题
|
||||
|
||||
@ -105,9 +124,20 @@ sudo apt-get install libasound2
|
||||
sudo yum install alsa-lib
|
||||
```
|
||||
|
||||
### GUI 版本无法启动
|
||||
确保已安装 GTK3 和 WebKit2GTK 依赖:
|
||||
```bash
|
||||
# Ubuntu/Debian
|
||||
sudo apt-get install libgtk-3-0 libwebkit2gtk-4.1-0 libappindicator3-1
|
||||
|
||||
# CentOS/RHEL
|
||||
sudo yum install gtk3 webkit2gtk4.1 libappindicator
|
||||
```
|
||||
|
||||
## 📝 获取帮助
|
||||
|
||||
```bash
|
||||
# CLI 帮助
|
||||
./impress_asr --help
|
||||
```
|
||||
|
||||
@ -120,7 +150,7 @@ ls -lh "$DIST_DIR/"
|
||||
|
||||
# 打包成 tar.gz
|
||||
echo ""
|
||||
echo "[5/5] 打包成 tar.gz 文件..."
|
||||
echo "[6/6] 打包成 tar.gz 文件..."
|
||||
cd "$DIST_DIR/.."
|
||||
tar -czf "$OUTPUT_TAR" linux-x64/
|
||||
|
||||
@ -133,7 +163,10 @@ echo "文件大小:$(ls -lh "$OUTPUT_TAR" | awk '{print $5}')"
|
||||
echo "=============================================="
|
||||
echo ""
|
||||
echo "Linux 运行所需文件清单:"
|
||||
echo " - impress_asr_gui (GUI 桌面应用)"
|
||||
echo " - impress_asr (CLI 工具)"
|
||||
echo " - icon.png (应用图标)"
|
||||
echo " - tray-icon.png (托盘图标)"
|
||||
echo " - config.toml (可选,配置文件)"
|
||||
echo " - models/ (模型文件目录)"
|
||||
echo " - dist/ (前端资源)"
|
||||
|
||||
6254
gen/schemas/linux-schema.json
Normal file
6254
gen/schemas/linux-schema.json
Normal file
File diff suppressed because it is too large
Load Diff
BIN
icons/icon.png
Normal file
BIN
icons/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.9 KiB |
Loading…
Reference in New Issue
Block a user