ue4:buildsystem
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン最新のリビジョン両方とも次のリビジョン | ||
ue4:buildsystem [2022/03/17 14:12] – [Unity Build] oga | ue4:buildsystem [2022/03/17 14:29] – [Unity Build] oga | ||
---|---|---|---|
行 126: | 行 126: | ||
他のファイルで #include されているかもしれないからです。 | 他のファイルで #include されているかもしれないからです。 | ||
Unity Build が行われる単位は変化するので、以前はビルドが通っていても再ビルドしたらエラーが出ていて戸惑うこともあります。 | Unity Build が行われる単位は変化するので、以前はビルドが通っていても再ビルドしたらエラーが出ていて戸惑うこともあります。 | ||
+ | |||
+ | Unity Build を無効化してビルドが通るかテストしたい場合は、ビルド時のコマンドラインオプションに -DisableUnity を指定します。 | ||
+ | (VisualStudio から呼ばれている Build.bat のコマンドラインオプションに指定できます。) | ||
+ | |||
+ | または BuildConfiguration.xml でも設定可能です。 | ||
+ | |||
+ | |||
行 132: | 行 139: | ||
File Scope が完全な Local になりません。 | File Scope が完全な Local になりません。 | ||
File Scope に記述した static 変数や無名の namespace block が他のファイルからも見えるので、衝突する場合があります。 | File Scope に記述した static 変数や無名の namespace block が他のファイルからも見えるので、衝突する場合があります。 | ||
+ | |||
+ | |||
+ | === UnityBuild の各種設定 === | ||
+ | |||
+ | UnityBuild はビルド時間を短縮しますが、ビルドするソースコードが肥大しメモリ消費が増えます。 | ||
+ | 特にマルチコア・マルチスレッド CPU で並列ビルドを行う場合はメモリがあふれる可能性があります。 | ||
+ | |||
+ | コマンドラインオプションではなく、BuildConfigration.xml で無効化したい場合は bUseUnityBuild を使います。 | ||
+ | |||
+ | また、Unity 化する場合のソースコードのサイズ制限の目安を NumIncludedBytesPerUnityCPP (byte数) で指定できます。デフォルトは 384KB (393216) です。 | ||
+ | RAM 容量が少なくメモリ不足が発生する場合はサイズを減らしてみてください。 | ||
+ | |||
+ | <code xml> | ||
+ | <?xml version=' | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
行 137: | 行 168: | ||
+ | === 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 スレッド程度にとどめておくことをおすすめします。 | ||
行 287: | 行 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.txt · 最終更新: 2022/03/17 21:58 by oga