ue4:buildsystem
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
ue4:buildsystem [2021/12/21 16:46] – [Executor] oga | ue4:buildsystem [2022/03/17 21:58] (現在) – [Unity Build] oga | ||
---|---|---|---|
行 38: | 行 38: | ||
^ Executor | ^ Executor | ||
| LocalExecutor | | LocalExecutor | ||
- | | ParallelExecutor | + | | ParallelExecutor |
| XGE | 有料の分散ビルドツール IncrediBuild を install している場合に使用します。CPU/ | | XGE | 有料の分散ビルドツール IncrediBuild を install している場合に使用します。CPU/ | ||
| HybridExecutor | | HybridExecutor | ||
行 126: | 行 126: | ||
他のファイルで #include されているかもしれないからです。 | 他のファイルで #include されているかもしれないからです。 | ||
Unity Build が行われる単位は変化するので、以前はビルドが通っていても再ビルドしたらエラーが出ていて戸惑うこともあります。 | Unity Build が行われる単位は変化するので、以前はビルドが通っていても再ビルドしたらエラーが出ていて戸惑うこともあります。 | ||
+ | |||
+ | Unity Build を無効化してビルドが通るかテストしたい場合は、ビルド時のコマンドラインオプションに -DisableUnity を指定します。 | ||
+ | (VisualStudio から呼ばれている Build.bat のコマンドラインオプションに指定できます。) | ||
+ | |||
+ | または BuildConfiguration.xml でも設定可能です。 | ||
+ | |||
+ | |||
行 134: | 行 141: | ||
+ | === UnityBuild の各種設定 === | ||
+ | |||
+ | UnityBuild はビルド時間を短縮しますが、ビルドするソースコードが肥大しメモリ消費が増えます。 | ||
+ | 特にマルチコア・マルチスレッド CPU で並列ビルドを行う場合はメモリがあふれる可能性があります。 | ||
+ | |||
+ | コマンドラインオプションではなく、BuildConfigration.xml で無効化したい場合は bUseUnityBuild を使います。 | ||
+ | |||
+ | また、Unity 化する場合のソースコードのサイズ制限の目安を NumIncludedBytesPerUnityCPP (byte数) で指定できます。デフォルトは 384KB (393216) です。 | ||
+ | RAM 容量が少なくメモリ不足が発生する場合はサイズを減らしてみてください。 | ||
+ | |||
+ | <code xml> | ||
+ | <?xml version=' | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== ビルド速度の調整 ==== | ||
+ | |||
+ | |||
+ | === ParallelExecutor のビルドスレッド数 === | ||
+ | |||
+ | ParallelExecutor はすべてのスレッドを使用するとは限りません。 | ||
+ | 最大速度でビルドを行いたい場合は BuildConfiguration.xml への設定が必要です。 | ||
+ | |||
+ | 例えば物理コアが 6個である場合はデフォルトで 6スレッドでビルドが行われます。 | ||
+ | HyperThreading の 12スレッド分すべて使ってビルドを行いたい場合は、下記のように倍率として 2.0 を設定します。 | ||
+ | |||
+ | <code xml> | ||
+ | <?xml version=' | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ただし RAM 容量が少ない場合は指定した数だけビルドを走らせることができません。 | ||
+ | ParallelExecutor は RAM の空き容量によって最大スレッド数を制限しています。 | ||
+ | |||
+ | UnityBuild は非常にメモリを消費するので、RAM が少ない場合はむやみにビルドスレッド数を増やさないようにしてください。 | ||
+ | SN-DBS や FASTBuild では RAM 容量に関係なくビルドスレッド数を増やすことができますが、増やしすぎるとスラッシングが発生しビルド速度が著しく低下します。 | ||
+ | RAM が 32GB の場合は、最大でも 8~12 スレッド程度にとどめておくことをおすすめします。 | ||
行 149: | 行 206: | ||
- | 上記のように < | + | 上記のように < |
例えば下記の UFUNCTION() はどちらも < | 例えば下記の UFUNCTION() はどちらも < | ||
行 284: | 行 341: | ||
もちろん対応していない Compiler を使うと Engine のビルドではエラーが出ます。 | もちろん対応していない Compiler を使うと Engine のビルドではエラーが出ます。 | ||
特定の Module で clang が必要になった場合に、build.cs 内部で指定するのが本来の使い方だと思われます。 | 特定の Module で clang が必要になった場合に、build.cs 内部で指定するのが本来の使い方だと思われます。 | ||
+ | |||
+ | |||
+ | ==== Windows SDK の選択 ==== | ||
+ | |||
+ | <code xml> | ||
+ | <?xml version=' | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== 有効な分散ビルドの指定 ==== | ||
+ | |||
+ | <code xml> | ||
+ | <?xml version=' | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | | bAllowXGE | ||
+ | | bAllowSNDBS | ||
+ | | bAllowFASTBuild | ||
+ | |||
ue4/buildsystem.1640072795.txt.gz · 最終更新: 2021/12/21 16:46 by oga