diff --git a/.gitignore b/.gitignore index f17f2b2..84dda30 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ /.vs/ /.vscode/ *.exe +!/release/SmartLibraryManager.exe *.dll *.o *.obj diff --git a/README.md b/README.md index a8f02f5..8afb47e 100644 --- a/README.md +++ b/README.md @@ -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`の一つだけです。 @@ -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一括ビルド diff --git a/build_windows.bat b/build_windows.bat index 783977f..b105f94 100644 --- a/build_windows.bat +++ b/build_windows.bat @@ -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" @@ -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 diff --git a/release/SmartLibraryManager.exe b/release/SmartLibraryManager.exe new file mode 100644 index 0000000..78b5e98 Binary files /dev/null and b/release/SmartLibraryManager.exe differ