- (オプション) 7Zip (外部依存ファイルの解凍に使用)
- Visual Studio 2017 Comminity Edition
以下オプションも必要です。
- Windows XP Support for C++
- Windows 8.1 SDK と UCRT SDK
- C++ に関する Windows XP サポート
- HTML ヘルプコンパイラ (hhc.exe)
インストーラビルドの仕組みは こちら を参照
- Inno Setup の以下のいずれかのバージョンです。
- innosetup-5.5.9-unicode.exe (appveyor でのビルドではこちらが使われます。)
- innosetup-5.6.1-unicode.exe
- Python の 2.7 系、3.x 系のどちらでも OK (のはず)
Visual Studio Community 2017 で sakura.sln
をダブルクリックして開いてビルドします。
build-sln.bat <Platform> <Configuration>
build-sln.bat x64 Release
build-all.bat <Platform> <Configuration>
build-all.bat Win32 Release
set ARG_VSVERSION=16
build-all.bat Win32 Release
参考
こちら で ARG_VSVERSION
に関して説明しています。
こちら で appveyor 上でのビルドの仕組みを説明しています。
こちら で Azure Pipelines 上でのビルドの仕組みを説明しています。
こちら でビルドの仕組みを説明しています。
sakura editor ではビルド時に git の commit hash 等の情報を githash.h というファイルに出力します。 ビルド時に commit hash 等を生成することでビルド済みのバイナリがどの commit hash を元にビルドされたか 簡単に判断できて便利なのですが、
バイナリが変化しないリファクタリングをしたときでも、commit hash 等の変更が原因でバイナリ一致しなくなります。 これだと検証が面倒になるので、ローカルビルドで githash.h が変化しない手段を提供します。
コマンドラインで環境変数 SKIP_CREATE_GITHASH
を 1 に設定することにより commit hash の
更新処理をスキップすることができます。githash.h が存在しない場合には、この環境変数が設定されていても
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
へのパスが通っている場合または C:\Program Files\7-Zip\7z.exe
が存在している場合は
7z.exe
を、ZIP ファイルの解凍、圧縮、内容確認に使用します。
上記以外の場合は powershell によるスクリプト により処理を行います。
7z.exe
のほうがはるかに処理速度が速いので 7z.exe
が利用可能なら powershell によるスクリプト を
使う理由は殆どないのですが、デバッグ目的で強制的に powershell によるスクリプト を使用する手段を
提供します。
コマンドラインでビルドするときに事前に FORCE_POWERSHELL_ZIP を 1 に設定することにより 強制的に powershell によるスクリプト を使用します。
コマンド実行例
set FORCE_POWERSHELL_ZIP=1
build-sln.bat Win32 Release
build-sln.bat Win32 Debug
build-sln.bat x64 Release
build-sln.bat x64 Debug
生成されるバイナリは正しく動作しないが、MinGWでのビルドも可能。
MinGW64のビルド環境
cpu | thread モデル | 例外モデル | コメント |
---|---|---|---|
x86_64 | win32 | seh | windows向け。外部DLL不要 |
x86_64 | posix | seh | 標準。pthreadのDLLが必要 |
x86_64 | win32 | sjlj | 外部DLL不要 |
x86_64 | posix | sjlj | pthreadのDLLが必要 |
標準的なMinGWセットアップでビルドしたバイナリは libwinpthread-1.dll
に依存することに注意。
コマンド実行例
path=C:\msys64\mingw64\bin;%path%
mingw32-make -C sakura_core githash.h Funccode_enum.h Funccode_define.h
mingw32-make -C sakura_core -j4