UnrealBuildTool は、いくつかのターゲット タイプのビルドをサポートしています。
-
Game - 実行するためにクックされたデータを必要とするスタンドアロン ゲーム。
-
Client - Game と同様、サーバー コードを含まない。ネットワーク ゲームに適しています。
-
Server - Game と同様、クライアント コードを含まない。ネットワーク化されたゲームの専用サーバーに適しています。
-
Editor - Unreal Editor を拡張するターゲットです。
-
Program - Unreal Engine 上にビルドされたスタンドアロンのユーティリティ プログラムです。
ターゲットは、.target.cs 拡張子のついた C# ソース ファイルで宣言され、プロジェクトの Source ディレクトリに格納されます。各 .target.cs ファイルには、TargetRules 基本クラスから派生するクラスを宣言し、コンストラクタからのビルド方法を制御するプロパティを設定します。ターゲットをビルドするように求められると、UnrealBuildTool は target.cs ファイルをコンパイルし、その中にクラスをビルドして設定を決めます。
クラス名は、そのクラスが宣言されているファイル名の後に「Target」 (例えば、「MyProject.target.cs」にはクラス「MyProjectTarget」を定義します) を付けたものと一致させます。
ターゲット ファイルの一般的な構造は次のとおりです。
using UnrealBuildTool;
using System.Collections.Generic;
public class MyProjectTarget :TargetRules
{
public MyProjectTarget(TargetInfo Target) : base(Target)
{
Type = TargetType.Game;
// Other properties go here (その他のプロパティはここにくる)
}
}
読み取り専用プロパティ
$ Platform (UnrealTargetPlatform):このターゲットがビルドされているプラットフォームです。
$ Configuration (UnrealTargetConfiguration):ビルド中のコンフィギュレーションです。
$ Architecture (String):ターゲットをビルドするアーキテクチャです (または、デフォルトの場合は空の文字列)。
$ ProjectFile (FileReference):このターゲットを含むプロジェクトのプロジェクト ファイルへのパスです。
$ Version (ReadOnlyBuildVersion):現在のビルド バージョンです。
読み取り / 書き込み用プロパティ
$ Type (TargetType):ターゲットのタイプです。
$ bUsesSteam (Boolean):ターゲットでスチームを使用するかどうかを指定します。
$ bUsesCEF3 (Boolean):ターゲットが CEF3 を使用するかどうかを指定します。
$ bUsesSlate (Boolean):プロジェクトで視覚的なスレート UI を使用するかどうかを指定します (常に利用可能な低レベルのウィンドウ / メッセージングとは異なります)。
$ bUseStaticCRT (Boolean):静的 CRT にリンクを強制します。アロケーターの実装が必要であり (例えば)、TPS ライブラリは互いに一貫しているため、これはエンジン全体で完全にはサポートされていませんが、ユーティリティ プログラムには使用できます。
$ bDebugBuildsActuallyUseDebugCRT (Boolean):デバッグ ビルド用に Debug C++ ランタイム (CRT) を有効にします。デフォルトでは、リリース ランタイムを常に使用します。これは、デバッグ バージョンを用いた Unreal Engine プロジェクトのデバッグが実用的ではないことと、デバッグ CRT ライブラリとリンクすると、サードパーティ ライブラリの依存関係もデバッグ CRT を使用したコンパイルが強制されるためです (そして、通常は実行が遅くなります)。多くの場合、プログラムのコードをデバッグするためだけにサードパーティのスタティック ライブラリのデバッグ バージョンのコピーが別途必要となり、あまり便利ではありません。
$ bLegalToDistributeBinary (Boolean):モジュール上の依存関係が特別な制約をもつフォルダ (CarefullyRedist、NotForLicensees、NoRedist など) 内にある場合でも、このターゲットからの出力を公開配布できるかどうかを指定します。
$ UndecoratedConfiguration (UnrealTargetConfiguration):バイナリに「-Platform-Configuration」サフィックスが不要なコンフィギュレーションを指定します。
$ bBuildAllPlugins (Boolean):有効になっていない場合でも、検出されたすべてのプラグインをビルドします。これは、プラグインを有効にするゲームで UE4Editor ターゲットをビルドして実行する、コンテンツのみのプロジェクトで特に便利です。
$ bBuildAllModules (Boolean):このターゲット タイプに有効なモジュールをすべてビルドします。CIS に使用され、インストールされたエンジン ビルドを作成します。
$ BuildPlugins (List
$ AdditionalPlugins (List
$ EnablePlugins (List
$ DisablePlugins (List
$ PakSigningKeysFile (String):実行ファイルに埋め込む pak 署名キーのセットへのパスです。
$ SolutionDirectory (String):プログラム ターゲットが独自のソリューション フォルダ パスを指定できるようにします。
$ bBuildInSolutionByDefault (Nullable
$ bShouldCompileAsDLL (Boolean):このターゲットを DLL としてコンパイルするかどうかを指定します。LinkType を TargetLinkType.Monolithic に設定する必要があります。
$ ExeBinariesSubFolder (String):デフォルトの場所を基準にして、実行ファイルを配置するサブフォルダです。
$ GeneratedCodeVersion (EGeneratedCodeVersion):ターゲット モジュールが UHT コード生成バージョンをオーバーライドできるようにします。
$ bEnableMeshEditor (Boolean):メッシュ エディタを有効にするかどうかを指定します。
$ bCompileChaos (Boolean):カオス物理プラグインをコンパイルするかどうかを指定します。
$ bUseChaos (Boolean):カオス物理インターフェースを使用するかどうかを指定します。これにより physx フラグがオーバーライドされ、APEX と NvCloth が無効になります。
$ bUseChaosChecked (Boolean):デバッグ用にチェックを入れたカオス機能にコンパイルするかどうかを指定します。
$ bUseChaosMemoryTracking (Boolean):カオス メモリ トラッキング機能にコンパイルするかどうかを指定します。
$ bCustomSceneQueryStructure (Boolean):シーン クエリ アクセラレーションが UE4 によって実行されるかどうかを指定します。PhysX シーンのクエリ構造は作成されますが、使用されません。
$ bCompilePhysX (Boolean):PhysX のサポートをインクルードするかどうかを指定します。
$ bCompileAPEX (Boolean):PhysX APEX のサポートをインクルードするかどうかを指定します。
$ bCompileNvCloth (Boolean):NvCloth をインクルードするかどうかを指定します。
$ bCompileICU (Boolean):コアに ICU ユニコード / i18n のサポートをインクルードするかどうかを指定します。
$ bCompileCEF3 (Boolean):CEF3 のサポートをコンパイルするかどうかを指定します。
$ bCompileISPC (Boolean):ISPC を使ってコンパイルするかどうかを指定します。
$ bForceBuildTargetPlatforms (Boolean):通常はビルドされないターゲット プラットフォーム モジュールを強制的にコンパイルするかどうかを指定します。
$ bForceBuildShaderFormats (Boolean):通常はビルドされない場合も、シェーダ フォーマット モジュールを強制的にコンパイルするかどうかを指定します
$ bCompileCustomSQLitePlatform (Boolean):SQLite をコンパイルするときに、カスタムの「Unreal」プラットフォームを使用するか (true)、ネイティブのプラットフォームを使用するか (false) を指定します。
$ bUseCacheFreedOSAllocs (Boolean):MallocBinned にキャッシュフリー OS の割り当てを使用するかどうか指定します。
$ bCompileAgainstEngine (Boolean):エンジン プロジェクトを含むすべてのビルドに対して有効になります。コアとのみリンクするスタンドアロン アプリケーションをビルドする場合にのみ無効になります。
$ bCompileAgainstCoreUObject (Boolean):CoreUObject プロジェクトをインクルードするすべてのビルドで有効になります。コアとのみリンクするスタンドアロン アプリケーションをビルドする場合にのみ無効になります。
$ bCompileAgainstApplicationCore (Boolean):ApplicationCore モジュールを初期化する必要があるビルドに対して有効になります。コマンドライン ユーティリティは通常これを必要としません。
$ bCompileRecast (Boolean):Recast Navmesh Generation をコンパイルするかどうかを指定します。
$ bCompileNavmeshSegmentLinks (Boolean):ナビメッシュ セグメント リンクでコンパイルするかどうかを指定します。
$ bCompileNavmeshClusterLinks (Boolean):ナビメッシュ クラスタ リンクでコンパイルするかどうかを指定します。
$ bForceEnableExceptions (Boolean):すべてのモジュールの例外を有効にします。
$ bUseInlining (Boolean):すべてのモジュールのインライン化を有効にします。
$ bForceEnableObjCExceptions (Boolean):すべてのモジュールの例外を有効にします。
$ bForceEnableRTTI (Boolean):すべてのモジュールで RTTI を有効にします。
$ bCompileWithStatsWithoutEngine (Boolean):エンジンがなくても stats のサポートをインクルードするかどうかを指定します。
$ bCompileWithPluginSupport (Boolean):プラグインのサポートをインクルードするかどうかを指定します。
$ bCompileWithAccessibilitySupport (Boolean):Slate と OS レイヤーの両方でアクセス可能なコードを許可するかどうかを指定します。
$ bUseDebugLiveCodingConsole (Boolean):ライブ コーディングに対応可能かどうかを指定します。
$ bWithDirectXMath (Boolean):DirectX Math に対してサポートを有効にするかどうかを指定します。
$ bUseLoggingInShipping (Boolean):テスト / 出荷ビルドのログをオンにするかどうかを指定します。
$ bLoggingToMemoryEnabled (Boolean):テスト / 出荷ビルドのメモリへのログをオンにするかどうかを指定します。
$ bUseLauncherChecks (Boolean):プロセスが外部ランチャーを介して起動されたことを確認するかどうかを指定します。
$ bUseChecksInShipping (Boolean):テスト / 出荷ビルドのチェック (アサート) をオンにするかどうかを指定します。
$ bUseEstimatedUtcNow (Boolean):EstimatedUtcNow または PlatformUtcNow の使用を指定します。EstimatedUtcNow は PlatformUtcNow が遅くなる可能性のある場合に適しています。
$ bCompileFreeType (Boolean):true の場合、FreeType のサポートが必要になります。
$ bCompileForSize (Boolean):true の場合、速度よりもサイズの最適化を優先します。
$ bForceCompileDevelopmentAutomationTests (Boolean):開発自動化テストをコンパイルするかどうかを指定します。
$ bForceCompilePerformanceAutomationTests (Boolean):パフォーマンス自動化テストをコンパイルするかどうかを指定します。
$ bEventDrivenLoader (Boolean):True の場合、イベント ドリブン ローダーがクック済みビルドで使用されます。非同期読み込みがリファクタリングされた後、ランタイム ソリューションに置き換える必要があります。
$ bUseXGEController (Boolean):XGE のコントローラー ワーカーとモジュールをエンジン ビルドにインクルードするかどうかを指定します。これらは、XGE インターセプトション インターフェースを使用した分散シェーダ コンパイルに必要です。
$ bIWYU (Boolean):このターゲットのモジュールに対してデフォルトで「include-what-you-use」を有効にします。このプロジェクトの任意のモジュールのデフォルトの PCH モードを PCHUsageMode.UseExplicitOrSharedPCHs に変更します。
$ bEnforceIWYU (Boolean):「include-what-you-use」ルールを強制します。モノリシック ヘッダ (「Engine.h」、「UnrealEd.h」など) が使用されている場合に警告し、ソース ファイルに一致するヘッダが最初に含まれているかどうかを確認します。
$ bPrecompile (Boolean):このターゲットの中間ファイルとして、すべてのエンジン モジュールの静的ライブラリを作成します。
$ bEnableOSX109Support (Boolean):OS X 10.9 Mavericks をサポートしてコンパイルすべきかどうかを指定します。このバージョンの OS X との互換性が必要なツールに使用します。
$ bIsBuildingConsoleApplication (Boolean):ture の場合、ビルド中のコンソール アプリケーションです。
$ bDisableSymbolCache (Boolean):true の場合、一部のプラットフォーム用にキャッシュされるデバッグ シンボルは作成されません。
$ bUseUnityBuild (Boolean):コンパイルを高速化するために、C++ コードを大きなファイルに統合するかどうかを指定します。
$ bForceUnityBuild (Boolean):コンパイルを高速化するために、C++ コードを大きなファイルに強制的に統合するかどうかを指定します。
$ bUseAdaptiveUnityBuild (Boolean):ヒューリスティックな手法で、現在イテレート中のファイルを判別し、それらを単一のブロブから取り除き、増分コンパイル時間を短縮します。現在の実装では、読み取り専用フラグを使用して作業セットを区別しています。これは、ファイルが変更されるとソース コントロール システムによって書き込み可能になることを前提としています。この方法は Perforce には使用できますが、Git には適しません。
$ bAdaptiveUnityDisablesOptimizations (Boolean):適応する non-unity な作業セット内のファイル最適化を無効にします。
$ bAdaptiveUnityDisablesPCH (Boolean):適応する non-unity な作業セットに含まれるファイルの強制インクルード PCH を無効にします。
$ bAdaptiveUnityCreatesDedicatedPCH (Boolean):作業セット内のソースファイルごとに専用の PCH を作成することで、単純な cpp の変更のイテレーションを高速化します。
$ bAdaptiveUnityEnablesEditAndContinue (Boolean):作業セット内のソースファイルごとに専用の PCH を作成することで、単純な cpp の変更のイテレーションを高速化します。
$ MinGameModuleSourceFilesForUnityBuild (Int32):unity ビルド前のゲーム モジュール内のソース ファイルの数は、そのモジュールに対してアクティブになります。これにより、小さなゲーム モジュールでは、単一ファイルの反復コンパイル時間を短縮できますが、完全再ビルド時間は遅くなります。この設定は、モジュールの Build.cs ファイルの bFasterWithoutUnity オプションでオーバーライドできます。
$ ShadowVariableWarningLevel (WarningLevel):シャドウ変数をサポートしているプラットフォーム上では、その警告を強制的にエラーとして扱うようにします。
$ UnsafeTypeCastWarningLevel (WarningLevel):サポートしているプラットフォーム上で安全でないタイプのキャストとして処理する警告/エラーのレベルを表示します。(例: double->float or int64->int32)
$ bUndefinedIdentifierErrors (Boolean):条件式で未定義の識別子を使用すると、強制的にエラーとして処理するようにします。
$ bUseFastMonoCalls (Boolean):新しいモノリシック グラフィックス ドライバには、各種 D3d 関数に代わる「fast calls」のオプションが付きました
$ bUseFastSemanticsRenderContexts (Boolean):新しい Xbox ドライバは、「fast semantics」コンテキスト タイプをサポートします。これにより、即時コンテキストと遅延コンテキストでこの機能がオンになります。Xbox RHI でレンダリングの問題やクラッシュが発生した場合は、この機能を無効にしてみてください。
$ NumIncludedBytesPerUnityCPP (Int32):単一の統合 C++ ファイルにインクルードする C++ コードの推定バイト数です。
$ bStressTestUnity (Boolean):単一の統合ファイルからプロジェクトにすべての C++ ファイルをインクルードすることにより、C++ の unity ビルドの堅牢性をストレス テストするかどうかを指定します。
$ bForceDebugInfo (Boolean):デバッグ情報を強制的に生成するかどうかを指定します。
$ bDisableDebugInfo (Boolean):デバッグ情報の生成をグローバルに無効にするかどうかを指定します。構成単位、プラットフォーム固有のオプションは「DebugInfoHeuristics.cs」を参照してください。
$ bDisableDebugInfoForGeneratedCode (Boolean):生成されたファイルのデバッグ情報の生成を無効にするかどうかを指定します。これにより、大量のグルー コードが生成されるモジュールのリンク時間が短縮されます。
$ bOmitPCDebugInfoInDevelopment (Boolean):開発ビルド時に PC のデバッグ情報を無効にするかどうかを指定します (デバッグ情報を無効にするとリンク時間が非常に高速になるため、デベロッパーのイテレーションが高速になります)。
$ bUsePDBFiles (Boolean):PDB ファイルを Visual C++ ビルドに使用するかどうかを指定します。
$ bUsePCHFiles (Boolean):PCH ファイルを使用するかどうかを指定します。
$ bPreprocessOnly (Boolean):このターゲットに対してソースファイルを前処理してコンパイルをスキップするかどうかを指定します。
$ MinFilesUsingPrecompiledHeader (Int32):作成および使用前にプリコンパイル済みヘッダの使用を必要とするファイルの最小数です。
$ bForcePrecompiledHeaderForGameModules (Boolean):有効にすると、モジュール内のソース ファイルの数が少ない場合でも、常にゲーム モジュール用のプリコンパイル済みヘッダが生成されます。これにより、プロジェクト内のいくつかのファイルで繰り返し変更を行う際のコンパイル時間が大幅に短縮されますが、小さなゲーム プロジェクトでは完全な再ビルドの時間が遅くなります。モジュールの Build.cs ファイルに MinFilesUsingPrecompiledHeaderOverride を指定すると、オーバーライドが可能になります。
$ bUseIncrementalLinking (Boolean):インクリメンタル リンクを使用するかどうかを指定します。インクリメンタル リンクを使用すると、小さな変更を行うときのイテレーション時間を短縮できます。一部のコンピュータでは動作が不安定になる傾向があるため、現在はデフォルトで無効になっています (PDB 関連のコンパイル エラー)。
$ bAllowLTCG (Boolean):リンク時コード生成 (LTCG) の使用を許可するかどうかを指定します。
$ bPGOProfile (Boolean):このビルドで最適化のガイド付きプロファイル (PGO) を使用したインストールを有効にするかどうかを指定します。
$ bPGOOptimize (Boolean):最適化のガイド付きプロファイル (PGO) を使用してこのビルドを最適化するかどうかを指定します。
$ bSupportEditAndContinue (Boolean):編集をサポートし継続するかどうかを指定します。Microsoft コンパイラでのみ機能します。
$ bOmitFramePointers (Boolean):フレーム ポインタを省略するかどうかを指定します。無効にすると、PC のメモリ プロファイリングなど行う際に便利です。
$ bUseMallocProfiler (Boolean):True にすると、ビルドのメモリ プロファイリングが有効になります (USE_MALLOC_PROFILER=1 を定義し bOmitFramePointers=false を強制します)。
$ bUseSharedPCHs (Boolean):「Shared PCHs」を有効にします。この機能は、PCH のヘッダ ファイルがインクルードされている UBT が検出したモジュール間で特定の PCH ファイルを共有しようとすることで、コンパイル時間を大幅に短縮します。
$ bUseShippingPhysXLibraries (Boolean):開発ビルドおよびリリース ビルドで PhysX/APEX のリリース コンフィギュレーションを使用する必要がある場合は true にします。
$ bUseCheckedPhysXLibraries (Boolean):開発ビルドおよびリリース ビルドで PhysX/APEX のチェック済み設定を使用する場合は true にします。bUseShippingPhysXLibraries が true の場合は無視されます。
$ bCheckLicenseViolations (Boolean):現在ビルド中のモジュールが EULA に違反していないかをチェックするよう UBT に伝えます。
$ bBreakBuildOnLicenseViolation (Boolean):現在ビルド中のモジュールが EULA に違反している場合、ビルドを中断するよう UBT に伝えます。
$ bUseFastPDBLinking (Nullable
$ bCreateMapFile (Boolean):ビルドの一部としてマップ ファイルを出力します。
$ bAllowRuntimeSymbolFiles (Boolean):プラットフォームによってはポスト ビルド ステップとしてランタイム シンボル ファイルを生成すべきなら trueこれらのファイルは、ログにといてコールスタック バックとレースのシンボル名を解決するためにエンジンが使用します。
$ BundleVersion (String):Mac アプリのバンドル バージョンです。
$ bDeployAfterCompile (Boolean):コンパイル後に、デプロイが必要なプラットフォームに実行ファイルをデプロイするかどうかを指定します。
$ bAllowRemotelyCompiledPCHs (Boolean):有効にすると、XGE はリモートマシンでプリコンパイル済みのヘッダ ファイルをコンパイルできます。それ以外の場合、PCH は常にローカルに生成されます。
$ bCheckSystemHeadersForModification (Boolean):無効のアクションと判断した場合、システム パスのヘッダ修正確認を行うかどうか指定します。
$ bDisableLinking (Boolean):このターゲットへのリンクを無効にするかどうかを指定します。
$ bFormalBuild (Boolean):配布用の正式なビルドであることを示します。Build.version に変更リストが設定されている場合、このフラグは自動的に true に設定されます。現在このフラグには、OriginalFilename フィールドが正しく設定されるように、バイナリごとにデフォルトのリソース ファイルを個別にコンパイルする動作のみがバインドされています。デフォルトでは、ビルド時間を短縮するためにリソースを 1 回だけコンパイルします。
$ bFlushBuildDirOnRemoteMac (Boolean):ビルド前にリモート Mac の「Builds」ディレクトリを消去するかどうかを指定します。
$ bPrintToolChainTimingInfo (Boolean):コンパイラおよびリンカから詳細なタイミング情報を書き込むかどうかを指定します。
$ bParseTimingInfoForTracing (Boolean):タイミング データを chrome://tracing と互換性のあるトレース ファイルにパースするかどうかを指定します。
$ bPublicSymbolsByDefault (Boolean):POSIX プラットフォームでデフォルトでシンボルを非表示にするかどうかを指定します。
$ ToolChainName (String):このターゲットに作成するツール チェーンをオーバーライドできます。これは、UnrealBuildTool アセンブリで宣言されたクラス名と一致する必要があります。
$ bDisableUnverifiedCertificates (Boolean):未確認の証明書を読み込むことができるかどうかをエンジンのコンフィギュレーションで判断できるようにするかどうかを指定します。
$ bAllowGeneratedIniWhenCooked (Boolean):クックされたビルドで生成された ini ファイルをロードするかどうかを指定します (「GameUserSettings.ini」はどちらにしろロードされます)。
$ bAllowNonUFSIniWhenCooked (Boolean):クックされたビルドに、non-ufs ini ファイルをロードするかどうかを指定します (「GameUserSettings.ini」はどちらにしろロードされます)。
$ CppStandard (CppStandardVersion):このターゲットのコンパイルに使用する C++ 標準です。
$ BuildVersion (String):ビルド バージョンの文字列です。
$ GlobalDefinitions (List
$ ProjectDefinitions (List
$ ExportPublicHeader (String):このターゲットに対してパブリック定義を含むヘッダを書き出すたえのパスを指定します。外部のビルド プロセスで使用される DLL を作成する場合に有用です。
$ ExtraModuleNames (List
$ ManifestFileNames (List
$ DependencyListFileNames (List
$ bOverrideBuildEnvironment (Boolean):シェアード ビルド環境に対する違反を無視するかどうかを設定します (定義を修正するエディタ ターゲットなど)
$ PreBuildTargets (List
$ PreBuildSteps (List
$ PostBuildSteps (List
$ AdditionalBuildProducts (List
$ AdditionalCompilerArguments (String):コンパイラに渡す追加の引数です。
$ AdditionalLinkerArguments (String):リンカに渡す追加の引数です。
$ DisableUnityBuildForModules (String[]):Unity ビルドを無効にするモジュールのリストです。
$ EnableOptimizeCodeForModules (String[]):最適化を有効にするためのモジュールのリストです。
$ DisableOptimizeCodeForModules (String[]):最適化を無効にするためのモジュールのリストです。
$ GeneratedProjectName (String):プロジェクト ファイルを生成するときに同じタイプのターゲットが複数ある場合、使用するプロジェクト ファイル名を指定します。