buildドキュメントを追加
This commit is contained in:
422
docs/readme_build.md
Normal file
422
docs/readme_build.md
Normal file
@@ -0,0 +1,422 @@
|
|||||||
|
# VRCTビルドガイド
|
||||||
|
|
||||||
|
このドキュメントでは、VRCTプロジェクトのビルド方法について説明します。
|
||||||
|
|
||||||
|
## 目次
|
||||||
|
|
||||||
|
- [必要な環境](#必要な環境)
|
||||||
|
- [初回セットアップ](#初回セットアップ)
|
||||||
|
- [ビルドの種類](#ビルドの種類)
|
||||||
|
- [開発ビルド](#開発ビルド)
|
||||||
|
- [リリースビルド](#リリースビルド)
|
||||||
|
- [ビルドプロセスの詳細](#ビルドプロセスの詳細)
|
||||||
|
- [トラブルシューティング](#トラブルシューティング)
|
||||||
|
|
||||||
|
## 必要な環境
|
||||||
|
|
||||||
|
### 必須ソフトウェア
|
||||||
|
|
||||||
|
- **Node.js** (npm含む)
|
||||||
|
- **Python 3.x**
|
||||||
|
- **Rust** (Tauri用)
|
||||||
|
- **Git**
|
||||||
|
|
||||||
|
### 推奨環境
|
||||||
|
|
||||||
|
- Windows 10/11
|
||||||
|
- メモリ: 8GB以上
|
||||||
|
- ストレージ: 5GB以上の空き容量
|
||||||
|
|
||||||
|
## 初回セットアップ
|
||||||
|
|
||||||
|
### 1. リポジトリのクローン
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone <repository-url>
|
||||||
|
cd VRCT
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Node.js依存関係のインストール
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm install
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Python環境のセットアップ
|
||||||
|
|
||||||
|
以下のコマンドで、CPU版とCUDA版の両方の仮想環境を作成します:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm run setup-python
|
||||||
|
```
|
||||||
|
|
||||||
|
このコマンドは以下の処理を実行します:
|
||||||
|
- `.venv` (CPU版) の作成と依存関係のインストール
|
||||||
|
- `.venv_cuda` (CUDA版) の作成と依存関係のインストール
|
||||||
|
|
||||||
|
> **注意**: CUDA版を使用する場合は、NVIDIAのGPUとCUDA Toolkit 12.8が必要です。
|
||||||
|
|
||||||
|
## ビルドの種類
|
||||||
|
|
||||||
|
VRCTでは、以下の2種類のビルドが可能です:
|
||||||
|
|
||||||
|
### CPU版
|
||||||
|
標準的なCPUで動作するバージョン。GPUは不要。
|
||||||
|
|
||||||
|
### CUDA版
|
||||||
|
NVIDIA GPUを活用した高速処理版。CUDA対応GPUが必要。
|
||||||
|
|
||||||
|
## 開発ビルド
|
||||||
|
|
||||||
|
開発中にアプリケーションを実行・テストするためのビルドです。
|
||||||
|
|
||||||
|
### CPU版の開発ビルド
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm run dev
|
||||||
|
```
|
||||||
|
|
||||||
|
このコマンドは以下を実行します:
|
||||||
|
1. 実行中のプロセスを終了 (`task-kill`)
|
||||||
|
2. ビルドファイルのクリーンアップ (`clean`)
|
||||||
|
3. バージョン情報の更新 (`update-version`)
|
||||||
|
4. Pythonバックエンドのビルド (`build-python`)
|
||||||
|
5. ViteとTauriの開発サーバー起動
|
||||||
|
|
||||||
|
### CUDA版の開発ビルド
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm run dev-cuda
|
||||||
|
```
|
||||||
|
|
||||||
|
CPU版と同様ですが、CUDA対応のPythonバックエンドをビルドします。
|
||||||
|
|
||||||
|
### UIのみの開発
|
||||||
|
|
||||||
|
バックエンドのビルドをスキップして、UIのみを開発する場合:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm run dev-ui
|
||||||
|
```
|
||||||
|
|
||||||
|
## リリースビルド
|
||||||
|
|
||||||
|
配布用のインストーラーを作成するビルドです。
|
||||||
|
|
||||||
|
### CPU版のリリースビルド
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm run build
|
||||||
|
```
|
||||||
|
|
||||||
|
または、ZIP形式でパッケージング:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm run release
|
||||||
|
```
|
||||||
|
|
||||||
|
生成されるファイル:
|
||||||
|
- インストーラー: `src-tauri/target/release/bundle/nsis/`
|
||||||
|
- ZIPファイル: `VRCT.zip` (releaseコマンド使用時)
|
||||||
|
|
||||||
|
### CUDA版のリリースビルド
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm run build-cuda
|
||||||
|
```
|
||||||
|
|
||||||
|
または、ZIP形式でパッケージング:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm run release-cuda
|
||||||
|
```
|
||||||
|
|
||||||
|
生成されるファイル:
|
||||||
|
- インストーラー: `src-tauri/target/release/bundle/nsis/`
|
||||||
|
- ZIPファイル: `VRCT_cuda.zip` (release-cudaコマンド使用時)
|
||||||
|
|
||||||
|
### 両バージョンの同時ビルド
|
||||||
|
|
||||||
|
CPU版とCUDA版の両方をビルドする場合:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm run release-all
|
||||||
|
```
|
||||||
|
|
||||||
|
## ビルドプロセスの詳細
|
||||||
|
|
||||||
|
### バージョン管理
|
||||||
|
|
||||||
|
バージョンは `package.json` で一元管理され、以下のファイルに自動で同期されます:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm run update-version
|
||||||
|
```
|
||||||
|
|
||||||
|
更新されるファイル:
|
||||||
|
- `src-tauri/tauri.conf.json`
|
||||||
|
- `src-python/config.py`
|
||||||
|
|
||||||
|
### どこにバージョンを設定すればReleaseに反映されるか
|
||||||
|
|
||||||
|
- **設定箇所**: `package.json` の `version` が唯一のソース・オブ・トゥルース。
|
||||||
|
- **反映方法**: `npm run update-version`(`build`/`build-cuda`/`release`コマンド内でも自動実行)により、
|
||||||
|
- `src-tauri/tauri.conf.json` の `version` に同期(Tauri/NSISインストーラーの表示・メタデータに使用)
|
||||||
|
- `src-python/config.py` の `self._VERSION` に同期(ランタイム表示等に使用)
|
||||||
|
- **成果物への影響**:
|
||||||
|
- インストーラー(NSIS)は `tauri.conf.json` の `version` を取り込み、プロダクトバージョンとして反映。
|
||||||
|
- ZIPパッケージ名はスクリプト既定では固定(`VRCT.zip`/`VRCT_cuda.zip`)。ファイル名にバージョンを含めたい場合は、`package.json` の `release` スクリプトを調整してください。
|
||||||
|
|
||||||
|
### Pythonバックエンドのビルド
|
||||||
|
|
||||||
|
#### CPU版
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm run build-python
|
||||||
|
```
|
||||||
|
|
||||||
|
実行内容:
|
||||||
|
|
||||||
|
- `.venv` 環境をアクティベート
|
||||||
|
- PyInstallerで `spec/backend.spec` を使用してビルド
|
||||||
|
- 出力先: `src-tauri/bin/`
|
||||||
|
|
||||||
|
#### CUDA版
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm run build-python-cuda
|
||||||
|
```
|
||||||
|
|
||||||
|
実行内容:
|
||||||
|
|
||||||
|
- `.venv_cuda` 環境をアクティベート
|
||||||
|
- PyInstallerで `spec/backend_cuda.spec` を使用してビルド
|
||||||
|
- 出力先: `src-tauri/bin/`
|
||||||
|
|
||||||
|
### フロントエンドのビルド
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm run vite-build
|
||||||
|
```
|
||||||
|
|
||||||
|
Viteを使用してフロントエンド(React)をビルドし、`dist/` ディレクトリに出力します。
|
||||||
|
|
||||||
|
### Tauriアプリケーションのビルド
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm run tauri build
|
||||||
|
```
|
||||||
|
|
||||||
|
Tauriを使用して最終的なデスクトップアプリケーションをビルドします。
|
||||||
|
|
||||||
|
## GitHub ActionsでのRelease自動化
|
||||||
|
|
||||||
|
Windows用のReleaseをGitHub Actionsで自動生成・公開する例です。`package.json` のバージョンをタグ・リリース名に使い、TauriのNSISインストーラーとZIPを添付します。
|
||||||
|
|
||||||
|
### 推奨トリガー
|
||||||
|
|
||||||
|
- タグプッシュ(例: `v*`)または手動実行(`workflow_dispatch`)
|
||||||
|
|
||||||
|
### サンプルワークフロー(Windows)
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
name: Release (Windows)
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch: {}
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- 'v*'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-release-windows:
|
||||||
|
runs-on: windows-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Setup Node
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: '20'
|
||||||
|
|
||||||
|
- name: Setup Python
|
||||||
|
uses: actions/setup-python@v5
|
||||||
|
with:
|
||||||
|
python-version: '3.11'
|
||||||
|
|
||||||
|
- name: Setup Rust
|
||||||
|
uses: dtolnay/rust-toolchain@stable
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
npm ci
|
||||||
|
|
||||||
|
- name: Setup Python envs (.venv/.venv_cuda)
|
||||||
|
run: |
|
||||||
|
npm run setup-python
|
||||||
|
|
||||||
|
- name: Sync versions from package.json
|
||||||
|
run: |
|
||||||
|
npm run update-version
|
||||||
|
|
||||||
|
- name: Build (CPU)
|
||||||
|
run: |
|
||||||
|
npm run build
|
||||||
|
|
||||||
|
- name: Package ZIP (CPU)
|
||||||
|
run: |
|
||||||
|
python utils/zip.py --zip_name VRCT.zip
|
||||||
|
|
||||||
|
- name: Read version from package.json
|
||||||
|
id: pkg
|
||||||
|
shell: pwsh
|
||||||
|
run: |
|
||||||
|
$version = (Get-Content package.json | ConvertFrom-Json).version
|
||||||
|
echo "version=$version" >> $env:GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- name: Upload artifacts
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: VRCT-windows-${{ steps.pkg.outputs.version }}
|
||||||
|
path: |
|
||||||
|
src-tauri/target/release/bundle/nsis/**/*
|
||||||
|
VRCT.zip
|
||||||
|
|
||||||
|
- name: Create GitHub Release
|
||||||
|
uses: softprops/action-gh-release@v2
|
||||||
|
with:
|
||||||
|
tag_name: v${{ steps.pkg.outputs.version }}
|
||||||
|
name: VRCT v${{ steps.pkg.outputs.version }}
|
||||||
|
files: |
|
||||||
|
src-tauri/target/release/bundle/nsis/**/*
|
||||||
|
VRCT.zip
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
```
|
||||||
|
|
||||||
|
### ポイント
|
||||||
|
- ビルド前に必ず `npm run update-version` を実行して、`tauri.conf.json` と `config.py` にバージョンを同期します。
|
||||||
|
- アーティファクトのパスは既定構成に合わせています:
|
||||||
|
- インストーラー: `src-tauri/target/release/bundle/nsis/`
|
||||||
|
- ZIP: ルート直下の `VRCT.zip`
|
||||||
|
- CUDA版も同様にビルドする場合は、`npm run build-cuda` と `python utils/zip.py --zip_name VRCT_cuda.zip` を追加して、別アーティファクト名でアップロード・添付してください。
|
||||||
|
|
||||||
|
## ユーティリティコマンド
|
||||||
|
|
||||||
|
### クリーンアップ
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm run clean
|
||||||
|
```
|
||||||
|
|
||||||
|
以下のディレクトリを削除します:
|
||||||
|
- `build/`
|
||||||
|
- `dist/`
|
||||||
|
- `src-tauri/bin/`
|
||||||
|
- `src-tauri/target/`
|
||||||
|
|
||||||
|
### プロセスの強制終了
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm run task-kill
|
||||||
|
```
|
||||||
|
|
||||||
|
VRCTに関連する実行中のプロセスを終了します。
|
||||||
|
|
||||||
|
## ディレクトリ構成
|
||||||
|
|
||||||
|
```
|
||||||
|
VRCT/
|
||||||
|
├── bat/ # バッチスクリプト
|
||||||
|
│ ├── build.bat # CPU版Pythonビルド
|
||||||
|
│ ├── build_cuda.bat # CUDA版Pythonビルド
|
||||||
|
│ └── install.bat # Python環境セットアップ
|
||||||
|
├── spec/ # PyInstallerスペックファイル
|
||||||
|
│ ├── backend.spec # CPU版ビルド設定
|
||||||
|
│ └── backend_cuda.spec # CUDA版ビルド設定
|
||||||
|
├── src-python/ # Pythonバックエンドソースコード
|
||||||
|
├── src-tauri/ # Tauriアプリケーション設定
|
||||||
|
│ ├── bin/ # ビルド済みPythonバイナリ(生成)
|
||||||
|
│ └── target/ # Tauriビルド出力(生成)
|
||||||
|
├── src-ui/ # Reactフロントエンドソースコード
|
||||||
|
├── utils/ # ユーティリティスクリプト
|
||||||
|
│ ├── clean.py # クリーンアップスクリプト
|
||||||
|
│ ├── task_kill.py # プロセス終了スクリプト
|
||||||
|
│ ├── update_version.py # バージョン更新スクリプト
|
||||||
|
│ └── zip.py # ZIPパッケージング
|
||||||
|
├── package.json # Node.js設定とバージョン管理
|
||||||
|
├── requirements.txt # Python依存関係(CPU版)
|
||||||
|
└── requirements_cuda.txt # Python依存関係(CUDA版)
|
||||||
|
```
|
||||||
|
|
||||||
|
## トラブルシューティング
|
||||||
|
|
||||||
|
### Python環境のエラー
|
||||||
|
|
||||||
|
仮想環境を再作成してください:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm run setup-python
|
||||||
|
```
|
||||||
|
|
||||||
|
### ビルドが失敗する
|
||||||
|
|
||||||
|
1. クリーンアップを実行:
|
||||||
|
```bash
|
||||||
|
npm run clean
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Node.js依存関係を再インストール:
|
||||||
|
```bash
|
||||||
|
npm install
|
||||||
|
```
|
||||||
|
|
||||||
|
3. 再度ビルド:
|
||||||
|
```bash
|
||||||
|
npm run build
|
||||||
|
```
|
||||||
|
|
||||||
|
### CUDA版が動作しない
|
||||||
|
|
||||||
|
- CUDA Toolkit 12.8がインストールされているか確認
|
||||||
|
- NVIDIA GPUドライバーが最新か確認
|
||||||
|
- `requirements_cuda.txt` の依存関係が正しくインストールされているか確認
|
||||||
|
|
||||||
|
### プロセスが残っている
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm run task-kill
|
||||||
|
```
|
||||||
|
|
||||||
|
を実行して、すべてのVRCTプロセスを終了してください。
|
||||||
|
|
||||||
|
## 参考情報
|
||||||
|
|
||||||
|
### PyInstallerスペックファイル
|
||||||
|
|
||||||
|
- `spec/backend.spec` - CPU版の設定
|
||||||
|
- `spec/backend_cuda.spec` - CUDA版の設定
|
||||||
|
|
||||||
|
これらのファイルでは、以下を設定しています:
|
||||||
|
- エントリーポイント: `src-python/mainloop.py`
|
||||||
|
- データファイル(フォント、プロンプト、言語ファイル等)のパス
|
||||||
|
- 依存ライブラリのパス
|
||||||
|
|
||||||
|
### バージョン管理フロー
|
||||||
|
|
||||||
|
1. `package.json` のバージョンを更新
|
||||||
|
2. `npm run update-version` を実行
|
||||||
|
3. 自動的に `tauri.conf.json` と `config.py` が更新される
|
||||||
|
|
||||||
|
### リリースパッケージの内容
|
||||||
|
|
||||||
|
ZIPファイルには以下が含まれます:
|
||||||
|
- `VRCT.exe` - メインアプリケーション
|
||||||
|
- `VRCT-sidecar.exe` - Pythonバックエンド
|
||||||
|
- `_internal/` - 必要な依存ファイル
|
||||||
|
|
||||||
|
## ライセンス
|
||||||
|
|
||||||
|
プロジェクトのライセンスについては、`LICENSE` ファイルを参照してください。
|
||||||
Reference in New Issue
Block a user