Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
/.vs/
/.vscode/
*.exe
!/release/SmartLibraryManager.exe
*.dll
*.o
*.obj
Expand Down
14 changes: 13 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,23 @@ C++17とWin32 APIで開発したGUI図書在庫管理プログラムです。「

## 実行方法

### ダウンロード後すぐに実行する(推奨)

GitHubの「Code」からZIPをダウンロードして展開し、次のファイルをダブルクリックしてください。ビルド、MinGWのインストール、DLLの追加は不要です。

```text
release/SmartLibraryManager.exe
```

このEXEはC++ランタイムを静的リンクした配布用GUIアプリです。リポジトリ内では`data/books.csv`を読み書きし、EXEだけを別の場所へコピーした場合は同じフォルダーに`books.csv`を自動作成します。

### Windowsで一括ビルド

MinGW-w64またはMSYS2が必要です。`build_windows.bat`を実行すると、次のGUIプログラムだけが生成されます。EXEは静的リンク済みのため、配布先でMinGWのDLLを別途用意する必要はありません。
開発者がソースコードを変更して再ビルドする場合だけ、MinGW-w64またはMSYS2が必要です。`build_windows.bat`を実行すると、次のGUIプログラムと配布用EXEが生成されます。

```text
build/library_manager.exe
release/SmartLibraryManager.exe
```

ビルドスクリプトは旧版の`library_cli.exe`と`library_tests.exe`を自動的に削除します。利用者向けの実行ファイルは`library_manager.exe`の一つだけです。
Expand Down Expand Up @@ -58,6 +69,7 @@ cmake --build build
├── src/ # コア実装とWin32 GUI画面
├── tests/ # GitHub Actions用の自動テスト
├── data/books.csv # サンプルデータ
├── release/ # ビルド不要で直接実行できる配布用EXE
├── docs/DESIGN.md # 設計および学習項目の説明
├── CMakeLists.txt # クロスプラットフォーム用ビルド設定
└── build_windows.bat # Windows用GUI一括ビルド
Expand Down
7 changes: 7 additions & 0 deletions build_windows.bat
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ where g++ >nul 2>nul
if errorlevel 1 goto :compiler_missing

if not exist "%ROOT%build" mkdir "%ROOT%build"
if not exist "%ROOT%release" mkdir "%ROOT%release"
if exist "%ROOT%build\library_cli.exe" del /q "%ROOT%build\library_cli.exe"
if exist "%ROOT%build\library_tests.exe" del /q "%ROOT%build\library_tests.exe"
if exist "%ROOT%build\library_manager.exe" del /q "%ROOT%build\library_manager.exe"
Expand All @@ -18,7 +19,13 @@ if errorlevel 1 (
echo Build failed.
exit /b 1
)
copy /y "%ROOT%build\library_manager.exe" "%ROOT%release\SmartLibraryManager.exe" >nul
if errorlevel 1 (
echo Release copy failed.
exit /b 1
)
echo GUI build completed successfully: build\library_manager.exe
echo Ready-to-run release: release\SmartLibraryManager.exe
exit /b 0

:compiler_missing
Expand Down
Binary file added release/SmartLibraryManager.exe
Binary file not shown.
Loading