C++20をサポートするC++コンパイラーが必要です。
- 最新のVisual Studio (推奨)
- 以前のバージョンのVisual Studio
- Visual Studio 2019 以降
- MinGW64 GCCコンパイラー
補助ツールとして以下が必須です。
| ツール名 | exe名 | 説明 |
|---|---|---|
| HTML Help Workshop | hhc.exe | Visual Studio同梱のもの |
| CMake | cmake.exe | Visual Studio同梱のもので可 |
| PowerShell Core | pwsh.exe | Microsoft Storeなどからインストール |
| 7-Zip | 7z.exe | 外部依存ファイルの解凍に使用します。 |
| Locale Emulator | LEProc.exe | 日本語環境以外でHTMLヘルプをビルドする場合に利用します。 |
| Auto HotKey | AutoHotKey.exe | 日本語環境以外でHTMLヘルプをビルドする場合にソースに腹持ちしたLocale Emulatorを展開する際に利用します。 |
インストーラをビルドする場合のみ必要です。
- Inno Setup (ISCC.exe)
- 推奨バージョン: innosetup-6.4.0.exe
choco install InnoSetup -y詳細は インストーラビルドの仕組み を参照してください。
Visual Studio で sakura.sln を開いてビルドします。
build-sln.bat <Platform> <Configuration>例: x64 の Release ビルド
build-sln.bat x64 ReleaseVisual Studio 2019を指定してビルド
set ARG_VSVERSION=16
build-sln.bat Win32 Release参考: MSBuildの検索について で ARG_VSVERSION の詳細を説明しています。
実行ファイル、ヘルプファイル、インストーラをすべてビルドします。
build-all.bat <Platform> <Configuration>例: Win32 の Release ビルド
build-all.bat Win32 Releaseビルドで使用する環境変数 を参照してください。
ビルドに使用されるバッチファイル を参照してください。
ビルド時に git の commit hash を githash.h に出力します。これによりバイナリが commit hash から特定できますが、バイナリが変化しないリファクタリングでもバイナリが異なってしまいます。
検証を容易にするため、環境変数 SKIP_CREATE_GITHASH を 1 に設定することで commit hash の更新をスキップできます。
注意: githash.h が存在しない場合は、この環境変数に関係なく生成されます。
実行例:
set SKIP_CREATE_GITHASH=1
build-sln.bat Win32 Release
build-sln.bat Win32 Debug
build-sln.bat x64 Release
build-sln.bat x64 Debug通常、7z.exe が利用可能な場合は自動的に使用されます(高速)。デバッグ目的で PowerShellスクリプト を強制的に使用する場合:
set FORCE_POWERSHELL_ZIP=1
build-sln.bat Win32 Releaseドキュメント修正など、ビルドが不要な変更の場合、コミットメッセージに [ci skip] または [skip ci] を含めることでCIビルドをスキップできます。
注意: PRマージ時は実行されます。
参考:
- https://qiita.com/vmmhypervisor/items/f10c77a375c2a663b300
- https://github.blog/changelog/2021-02-08-github-actions-skip-pull-request-and-push-workflows-with-skip-ci/
警告: 生成されるバイナリは正しく動作しません。
MinGW w64のインストール を完了後、以下の方法でビルドできます。
MINGW64コンソールで以下を実行。
cmake -S . -B build/MinGW -DCMAKE_BUILD_TYPE=Debug -DBUILD_PLATFORM=MinGW
cmake --build build/MinGW
ctest --test-dir build/MinGW --output-on-failureまたは、コマンドプロンプトで以下を実行。
build-gnu.bat MinGW Debug
build-gnu.bat MinGW Release-
PowerShell管理者コンソールを開く:
- Windowsタスクバーの検索窓に
powershellと入力 Windows PowerShellを右クリックして「管理者として実行」
- Windowsタスクバーの検索窓に
-
以下のコマンドを実行:
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
-
インストール確認:
choco
詳細: Chocolatey公式サイト
Chocolatey をインストール後、PowerShell管理者コンソールで実行:
choco install msys2 --params "/InstallDir:C:\msys64"C:\msys64\msys2.exe を実行します。
- Chocolatey をインストール
- Msys2 をインストール
- Msys2コンソール を開く
- pacmanパッケージを最新化:
pacman -Syuu
- MinGW-w64をインストール:
pacman -S --noconfirm mingw-w64-x86_64-gcc mingw-w64-x86_64-cmake mingw-w64-x86_64-make mingw-w64-x86_64-7zip