虚幻构建工具(UBT) 支持构建数个目标类型:
-
游戏(Game) :需要烘焙数据才能运行的单机游戏。
-
客户端(Client) :与游戏(Game)相同,但不包含服务器代码。适用于联网游戏。
-
服务器(Server) :与游戏(Game)相同,但不包含客户端代码。适用于联网游戏中的专用服务器。
-
编辑器(Editor) :可扩展虚幻编辑器的目标。
-
程序(Program) :基于虚幻引擎打造的独立工具程序。
目标通过C#源文件进行声明,这些文件的扩展名为 .target.cs ,存储在你的项目的根目录下。每个 .target.cs 文件都声明一个从 TargetRules 基类衍生而来的类,并设置属性来控制应如何从其构造函数进行构建。收到构建目标的要求时,虚幻构建工具(Unreal Build Tool)将编译你的 .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;
// 其他属性放在此处
}
}
只读属性
-
OriginalName (String): 返回原始目标名称,无重载或装饰。
-
IsTestTarget (Boolean): 此目标是否为低级测试目标。
-
ExplicitTestsTarget (Boolean): 此目标是否为显式定义的测试目标。显式定义的测试目标总是从TestTargetRules继承并定义其自身的测试。隐式测试目标在使用-Mode=Test编译时从现有目标创建,并且包括来自所有依赖项的测试。
-
WithLowLevelTests (Boolean): 控制WITH_LOW_LEVEL_TESTS的值,该值指示是否编译模块特有的低级别测试。
-
Architecture (UnrealArch): 在架构中只有单一架构的正常情况下获取该架构(如果指定了多个架构,此属性将引发异常)。
-
bIWYU (Boolean): 默认情况下,为此目标中的模块启用"包含你所使用的内容(include what you use)"。将此项目中所有模块的默认PCH模式更改为PCHUsageMode.UseExplicitOrSharedPCHs。
-
DisableDebugInfoModules (HashSet
): 应该禁用调试信息的模块。 -
DisableDebugInfoPlugins (HashSet
): 应该禁用调试信息的插件。 -
DebugInfoLineTablesOnlyModules (HashSet
): 对于支持这样做的编译器,应该发出行号表而不是完整调试信息的模块。重载DisableDebugInfoModules。 -
DebugInfoLineTablesOnlyPlugins (HashSet
): 对于支持这样做的编译器,应该发出行号表而不是完整调试信息的插件。重载DisableDebugInfoPlugins。 -
GlobalDefinitions (List
): 要在整个目标中全局定义的宏。 -
ProjectDefinitions (List
): 要在项目中的所有宏之间定义的宏。 -
ExtraModuleNames (List
): 要编译到目标中的额外模块的列表。 -
ManifestFileNames (List
): 此目标输出清单的路径。 -
DependencyListFileNames (List
): 预编译时,此目标的依赖项列表的路径。 -
PreBuildTargets (List
): 指定目标列表,其中的目标应该在此目标之前构建。 -
PreBuildSteps (List
): 在主机平台的shell上下文中,指定编译此目标前应执行的步骤列表。执行前将展开下列变量:(EngineDir)、(ProjectDir)、(TargetName)、(TargetPlatform)、(TargetConfiguration)、(TargetType)、*(ProjectFile)。 -
PostBuildSteps (List
): 在主机平台的shell上下文中,指定编译此目标后应执行的步骤列表。执行前将展开下列变量:(EngineDir)、(ProjectDir)、(TargetName)、(TargetPlatform)、(TargetConfiguration)、(TargetType)、*(ProjectFile)。 -
AdditionalBuildProducts (List
): 指定作为此目标的一部分而生成的额外构建产品。 -
HostPlatform (UnrealTargetPlatform): 获取正在构建的主机平台。
-
bGenerateProjectFiles (Boolean): 将bGenerateProjectFiles标记公开给目标,这样我们就可以适当地修改行为,获得更好的智能感知。
-
bShouldTargetRulesTogglePlugins (Boolean): 指示是否应使用目标规则来显式启用或禁用插件。除非项目文件指明是否应该编译引用插件,否则对于项目生成来说通常不需要。
-
bIsEngineInstalled (Boolean): 公开是否已安装引擎的设置。
读写属性
-
BuildPlugins (List
): 为此目标类型编译但未启用的额外插件。 -
AdditionalPlugins (List
): 需要包含在此目标中的附加插件的列表。此属性允许引用无法禁用的非可选插件模块,并允许针对程序目标中不属于ModuleHostType中类别的特定模块进行编译。 -
EnablePlugins (List
): 应为此目标包含的附加插件。 -
DisablePlugins (List
): 要为此目标禁用的插件列表。请注意,项目文件仍可能引用它们,因此应该将它们标记为可选,避免在运行时找不到。 -
OptionalPlugins (List
): 应该为此目标包含的附外插件(如果找到)。 -
InternalPluginDependencies (List
): 允许作为依赖性存在而不在uplugin描述符中定义的插件名称列表。 -
DisableMergingModuleAndGeneratedFilesInUnityFiles (String[]): 禁用合并模块和相同Unity文件中生成的cpp文件的模块列表。
-
DisableUnityBuildForModules (String[]): 禁用Unity编译的模块列表。
-
EnableOptimizeCodeForModules (String[]): 启用优化的模块列表。
-
DisableOptimizeCodeForModules (String[]): 禁用优化的模块列表。
-
OptimizeForSizeModules (String[]): 要优化大小的模块列表。这允许目标重载模块优化级别。请注意,如果未提供私有PCH,这可能禁用PCH使用。
-
OptimizeForSizeAndSpeedModules (String[]): 要优化大小和速度的模块列表。这允许目标重载模块优化级别。请注意,如果未提供私有PCH,这可能禁用PCH使用。
-
OptedInModulePlatforms (UnrealTargetPlatform[]): 如果此为非空,那么未列出的平台都将被禁止在其目录中创建模块。
-
Name (String): 此目标的名称。
-
Logger (ILogger): 与此目标相关的输出的记录器。在运行构造函数之前设置。
-
AdditionalData (Object): 通用可空对象,使用户可以在项目的TargetRule中设置额外数据,并在项目的ModuleRule中设置访问权限,而无需在发布后添加新的属性。例如:
- in .Target.cs: AdditionalData = "data";
- in .Build.cs: if ((Target.AdditionalData as string) == "data") { ... }
-
Platform (UnrealTargetPlatform): 要为哪个平台构建此目标。
-
Configuration (UnrealTargetConfiguration): 正在构建的配置。
-
Architectures (UnrealArchitectures): 要为哪个架构构建此目标(默认值为空字符串)。
-
IntermediateEnvironment (UnrealIntermediateEnvironment): 中间环境。确定中间文件是否位于与正常情况不同的文件夹中。
-
ProjectFile (FileReference): 包含此目标的项目的项目文件路径。
-
Version (ReadOnlyBuildVersion): 当前构建版本。
-
Type (TargetType): 目标的类型。
-
DefaultBuildSettings (BuildSettingsVersion): 指定用于维护向后兼容的默认构建设置的引擎版本(例如,DefaultSettingsVersion.Release_4_23、DefaultSettingsVersion.Release_4_24)。指定DefaultSettingsVersion.Latest始终使用当前引擎版本的默认值,但有可能在升级时引入构建错误。
-
ForcedIncludeOrder (Nullable
): 将包含顺序强制指定为特定版本。重载所有目标和模块规则。 -
IncludeOrderVersion (EngineIncludeOrderVersion): 编译此目标时使用哪个版本的包含顺序。可以在命令行中使用-ForceIncludeOrder来重载。ModuleRules.IncludeOrderVersion具有优先权。
-
OutputFile (String): 主可执行文件的输出文件相对于引擎或项目目录的路径。此设置通常仅适用于非UE程序,因为引擎会使用相对于可执行文件的路径来查找其他已知文件夹(例如Content)。
-
bUsesSteam (Boolean): 目标是否使用Steam。
-
bUsesCEF3 (Boolean): 目标是否使用CEF3。
-
bUsesSlate (Boolean): 项目是否使用可视Slate UI(与固定可用的低级视窗/消息传递相反)。
-
bUseStaticCRT (Boolean): 强制与静态CRT链接。由于需要共享分配器实现(举例而言),并且TPS库彼此一致,所以此功能并非完全受整个引擎支持,但可用于实用程序。
-
bDebugBuildsActuallyUseDebugCRT (Boolean): 为调试构建启用调试C++运行时(CRT)。默认情况下,我们始终使用发布运行时,因为调试版本在调试虚幻引擎项目时并不是特别有用,并且连接到调试CRT库会强制我们的第三方库依赖性也使用调试CRT进行编译(并且通常执行速度会更慢)。通常,仅仅为了调试程序代码而要求第三方静态库调试版本的单独副本,可能很不方便。
-
bLegalToDistributeBinary (Boolean): 此目标的输出是否可以公开分发,即使它对位于具有特殊限制的文件夹中的模块有依赖性(例如CarefullyRedist、NotForLicensees、NoRedist)。
-
UndecoratedConfiguration (UnrealTargetConfiguration): 指定其二进制文件不需要"-Platform-Configuration"后缀的配置。
-
bAllowHotReload (Boolean): 此目标是否支持热重载。
-
bBuildAllModules (Boolean): 构建对此目标类型有效的所有模块。用于CIS以及创建安装的引擎构建。
-
VSTestRunSettingsFile (FileReference): 将此属性设为可引用生成的项目中的VSTest运行设置文件。
-
bRuntimeDependenciesComeFromBuildPlugins (Boolean): 如果此为true,那么将使用BuildPlugins列表填充RuntimeDependencies,而非EnablePlugins。
-
DisablePluginsConflictWarningLevel (WarningLevel): 如何处理已禁用的插件被引用它的另一个插件启用而造成的冲突。
-
PakSigningKeysFile (String): 内嵌到可执行文件中的pak签名密钥集的路径。
-
SolutionDirectory (String): 允许程序目标指定自身的解决方案文件夹路径。
-
bBuildInSolutionByDefault (Nullable
): 目标是否应被包含在默认解决方案构建配置中。如果将此属性设置为false,在IDE中运行时将跳过构建。 -
bShouldCompileAsDLL (Boolean): 是否应将此目标编译为DLL。需要将LinkType设置为TargetLinkType.Monolithic。
-
CustomConfig (String): 用于加载配置文件的额外子目录,用于在同一平台上制作多种类型的构建。这将作为CUSTOM_CONFIG被烘焙到游戏可执行文件中,并在暂存到过滤文件和设置时使用。
-
ExeBinariesSubFolder (String): 用于放置可执行文件的子文件夹,相对于默认位置。
-
GeneratedCodeVersion (EGeneratedCodeVersion): 允许目标模块重载UHT代码生成版本。
-
bEnableMeshEditor (Boolean): 是否启用网格体编辑器。
-
bUseAutoRTFMCompiler (Boolean): 是否使用AutoRTFM Clang编译器。
-
bCompileChaos (Boolean): 是否编译Chaos物理系统插件。
-
bUseChaos (Boolean): 是否使用Chaos物理系统接口。此属性将重载PhysX标记以禁用APEX和NvCloth。
-
bUseChaosChecked (Boolean): 是否在勾选的Chaos功能中编译以进行调试。
-
bUseChaosMemoryTracking (Boolean): 是否在Chaos内存跟踪功能中编译。
-
bCompileChaosVisualDebuggerSupport (Boolean): 是否在Chaos Visual Debugger(CVD)支持功能中编译,以记录物理模拟的状态。
-
bCustomSceneQueryStructure (Boolean): 场景查询加速是否由UE完成。仍会创建PhysX场景查询结构,但我们不会使用它。
-
bCompilePhysX (Boolean): 是否包含PhysX支持。
-
bCompileAPEX (Boolean): 是否包含PhysX APEX支持。
-
bCompileNvCloth (Boolean): 是否包含NvCloth。
-
bCompileICU (Boolean): 是否在Core中包含ICU unicode/i18n支持。
-
bCompileCEF3 (Boolean): 是否编译CEF3支持。
-
bCompileISPC (Boolean): 是否使用ISPC编译。
-
bCompileIntelMetricsDiscovery (Boolean): 是否编译IntelMetricsDiscovery。
-
bCompilePython (Boolean): 是否在python支持中编译。
-
bUseGameplayDebugger (Boolean): 是否在为引擎的所有默认Gameplay调试器类别启用WITH_GAMEPLAY_DEBUGGER的的情况下编译。
-
bUseGameplayDebuggerCore (Boolean): 当bUseGameplayDebugger为false,但需要GameplayDebugger的核心部分时,设置为true。
-
bUseIris (Boolean): 是否使用Iris。
-
bBuildEditor (Boolean): 是否编译编辑器代码。首选改用更显式的bCompileAgainstEditor。
-
bBuildRequiresCookedData (Boolean): 是否编译与构建资产相关的代码。主机通常无法构建资产。桌面计算机平台一般都可以。
-
bBuildWithEditorOnlyData (Boolean): 是否编译禁用的WITH_EDITORONLY_DATA。仅Windows会使用它,其他平台会强制它为false。
-
bBuildDeveloperTools (Boolean): 是否编译开发人员工具。
-
bBuildTargetDeveloperTools (Boolean): 是否编译用于目标平台或连接设备的开发人员工具(默认为bBuildDeveloperTools)。
-
bForceBuildTargetPlatforms (Boolean): 是否强制编译目标平台模块,即使它们通常不会被构建。
-
bForceBuildShaderFormats (Boolean): 是否强制编译着色器格式模块,即使它们通常不会被构建。
-
bNeedsExtraShaderFormatsOverride (Nullable
): 重载以包含额外着色器格式。 -
bNeedsExtraShaderFormats (Boolean): 是否应该包含额外的着色器格式。默认仅为程序和编辑器目标启用此属性。
-
bCompileCustomSQLitePlatform (Boolean): 应使用自定义"虚幻"平台(true)还是使用原生平台(false)编译SQLite。
-
bUseCacheFreedOSAllocs (Boolean): 是否用MallocBinned来利用缓存释放的操作系统分配。
-
bCompileAgainstEngine (Boolean): 为所有包含引擎项目的构建启用。仅在构建仅与Core链接的独立应用时禁用。
-
bCompileAgainstCoreUObject (Boolean): 为所有包含CoreUObject项目的构建启用。仅在构建仅与Core链接的独立应用时禁用。
-
bCompileAgainstApplicationCore (Boolean): 为需要初始化ApplicationCore模块的构建启用。命令行实用程序通常不需要此属性。
-
bEnableTrace (Boolean): 为要针对Trace模块使用以进行分析和诊断的构建启用。
-
bCompileAgainstEditor (Boolean): 为编辑器构建(TargetType.Editor)启用。对于需要根据编辑器代码进行编译的程序(TargetType.Program),可以重载。不可用于其他目标类型。主要驱动WITH_EDITOR的值。
-
bCompileRecast (Boolean): 是否编译Recast寻路网格体生成。
-
bCompileNavmeshSegmentLinks (Boolean): 是否使用寻路网格体片段连接进行编译。
-
bCompileNavmeshClusterLinks (Boolean): 是否使用寻路网格体群集链接进行编译。
-
bCompileSpeedTree (Boolean): 是否应该内编译对SpeedTree的支持。
-
bForceEnableExceptions (Boolean): 为所有模块启用异常。
-
bUseInlining (Boolean): 为所有模块启用内联。
-
bForceEnableObjCExceptions (Boolean): 为所有模块启用异常。
-
bForceEnableRTTI (Boolean): 为所有模块启用RTTI。
-
bEnablePIE (Boolean): 启用位置无关可执行文件(PIE)。有间接开销。
-
bEnableStackProtection (Boolean): 启用堆栈保护。有间接开销。
-
bWithServerCode (Boolean): 编译仅服务器代码。
-
bFNameOutlineNumber (Boolean): 在FName将数字部分存储在名称表的情况下进行编译。当大多数名称未编号且已编号的名称被多次引用时,可节省内存。游戏和引擎必须确保它们重复使用类似于名称字符串的编号名称,以避免内存泄漏。
-
bWithPushModel (Boolean): 启用后,将编译推送模型网络支持。这有助于减少网络的CPU开销,但内存开销更大。始终在编辑器构建中启用。
-
bCompileWithStatsWithoutEngine (Boolean): 是否包含统计数据支持,即使没有引擎也不例外。
-
bCompileWithPluginSupport (Boolean): 是否包含插件支持。
-
bIncludePluginsForTargetPlatforms (Boolean): 是否允许支持所有目标平台的插件。
-
bCompileWithAccessibilitySupport (Boolean): 是否在Slate和OS层中均允许无障碍代码。
-
bWithPerfCounters (Boolean): 是否包括PerfCounters支持。
-
bWithLiveCoding (Boolean): 是否启用对实时编码的支持。
-
bUseDebugLiveCodingConsole (Boolean): 是否启用对实时编码的支持。
-
bWithDirectXMath (Boolean): 是否启用对DirectX Math LWC_TODO的支持:不再支持。需要删除。
-
bWithFixedTimeStepSupport (Boolean): 是否在引擎中启用对FixedTimeStep的支持
-
bUseLoggingInShipping (Boolean): 是否开启测试/发布构建的日志记录功能。
-
bUseConsoleInShipping (Boolean): 是否开启发布构建的控制台功能。
-
bLoggingToMemoryEnabled (Boolean): 是否开启测试/发布构建的记录到内存功能。
-
bUseLauncherChecks (Boolean): 是否检查进程是否通过外部启动程序进行启动。
-
bUseChecksInShipping (Boolean): 是否开启测试/发布构建的检查(断言)功能。
-
bAllowProfileGPUInTest (Boolean): 是否开启测试构建的GPU标识功能。
-
bAllowProfileGPUInShipping (Boolean): 是否开启发布构建的GPU标识功能。
-
bTCHARIsUTF8 (Boolean): 是否开启UTF-8模式,将TCHAR映射到UTF8CHAR。
-
bUseEstimatedUtcNow (Boolean): 是使用EstimatedUtcNow还是PlatformUtcNow。 在PlatformUtcNow可能很慢的情况下,适合使用EstimatedUtcNow。
-
bCompileFreeType (Boolean): 如果需要FreeType支持,则设为True。
-
bUseExecCommandsInShipping (Boolean): 是否开启发布构建的允许执行命令功能。
-
bCompileForSize (Boolean): 如果我们要优先考虑优化的规模而非速度,则设为True。
-
OptimizationLevel (OptimizationMode): 允许微调优化级别,以提高速度和/或减小代码大小
-
FPSemantics (FPSemanticsMode): 允许设置FP语义。
-
bForceCompileDevelopmentAutomationTests (Boolean): 是否编译开发自动化测试。
-
bForceCompilePerformanceAutomationTests (Boolean): 是否编译性能自动化测试。
-
bForceDisableAutomationTests (Boolean): 是否重载自动化测试的默认值(调试/开发配置)
-
bEventDrivenLoader (Boolean): 如为true,将在烘焙构建中使用事件驱动加载程序。@todoio 这需要在异步加载重构之后替换为运行时解决方案。
-
NativePointerMemberBehaviorOverride (Nullable
): 用于重载控制是否允许UCLASS和USTRUCT具有原生指针成员的行为,如果不允许,它们将出现UHT错误,应该用TObjectPtr成员代替。 -
bUseXGEController (Boolean): XGE控制器工作程序和模块是否应被包含在引擎构建中。这些是使用XGE拦截接口进行分布式着色器编译所必需的。
-
bIncludeHeaders (Boolean): 将所含模块中的头文件添加到构建中。
-
bHeadersOnly (Boolean): 与-IncludeHeaders一起使用时,仅会编译头文件。
-
bEnforceIWYU (Boolean): 强制执行"包含你所使用的内容(include what you use)"规则;如果使用了单块头文件(Engine.h、UnrealEd.h等),则发出警告,并检查确认源文件是否先包含了与其匹配的头文件。
-
bWarnAboutMonolithicHeadersIncluded (Boolean): 如果编译此目标时包含了旧样式的单块头文件,则发出警告。
-
bHasExports (Boolean): 最终的可执行文件是否应该导出符号。
-
bPrecompile (Boolean): 将所有引擎模块的静态库设为此目标的中间项。
-
bEnableOSX109Support (Boolean): 是否应在启用OS X 10.9 Mavericks支持的情况下进行编译。用于为与此版OS X兼容而需要的某些工具。
-
bIsBuildingConsoleApplication (Boolean): 如果正在构建的是主机应用程序,则为true。
-
bBuildAdditionalConsoleApp (Boolean): 如果为true,则创建额外的主机应用程序。已为Windows做了破解,根据应用程序的调用方式,无法有条件地继承父项的主机窗口;你必须将相同的可执行文件与不同的子系统设置链接。
-
bDisableSymbolCache (Boolean): 如果为一些平台缓存的调试符号不应该创建,则为true。
-
bUseUnityBuild (Boolean): 是否将C++代码统一到更大的文件中,从而加快编译。
-
bForceUnityBuild (Boolean): 是否强制将C++源文件合并为更大的文件,从而加快编译速度。
-
bMergeModuleAndGeneratedUnityFiles (Boolean): 是否合并模块和生成的Unity文件以更快编译。
-
bUseAdaptiveUnityBuild (Boolean): 使用启发法确定当前正在迭代哪些文件并将它们从Unity Blob中排除,从而加快增量编译。当前实现使用只读标记区分工作集,假定文件在被修改时将被源代码控制系统设为可写。这对于Perforce为true,但对Git则不然。
-
bAdaptiveUnityDisablesOptimizations (Boolean): 禁止优化位于自适应非Unity工作集中的文件。
-
bAdaptiveUnityDisablesPCH (Boolean): 为位于自适应非Unity工作集中文件禁用强制包含的PCH。
-
bAdaptiveUnityDisablesProjectPCHForProjectPrivate (Nullable
): bAdaptiveUnityDisablesProjectPCH的备份存储。 -
bAdaptiveUnityDisablesPCHForProject (Boolean): 是否为自适应非Unity工作集中的项目源文件禁用强制包含的PCH。默认为bAdaptiveUnityDisablesPCH;
-
bAdaptiveUnityCreatesDedicatedPCH (Boolean): 为工作集中的每个源文件创建专用的PCH,从而允许对仅限cpp的更改进行更快的迭代。
-
bAdaptiveUnityEnablesEditAndContinue (Boolean): 为工作集中的每个源文件创建专用的PCH,从而允许对仅限cpp的更改进行更快的迭代。
-
bAdaptiveUnityCompilesHeaderFiles (Boolean): 为工作集中的每个头文件创建专用源文件,以便检测头文件中缺少的包含。
-
MinGameModuleSourceFilesForUnityBuild (Int32): 为游戏模块激活Unity构建之前该模块中的源文件数量。这允许小型游戏模块加快对单个文件的迭代编译,但代价是完全重新构建会更慢。此设置可以由模块的Build.cs文件中的bFasterWithoutUnity选项重载。
-
DefaultWarningLevel (WarningLevel): 未分类警告的默认处理。
-
bRequireObjectPtrForAddReferencedObjects (Boolean): 需要FReferenceCollector API的TObjectPtr。(兼容增量GC所需。)
-
bValidateFormatStrings (Boolean): 对于不正确的UE_LOG格式字符串发出编译错误。
-
DeprecationWarningLevel (WarningLevel): 将废弃警告报告为错误的级别。
-
ShadowVariableWarningLevel (WarningLevel): 在支持的平台上强制将阴影变量警告视为错误。
-
bWarningsAsErrors (Boolean): 是否将全部警告作为错误启用。UE已经将大多数警告作为错误启用,但禁用了一些警告(例如废弃警告)。
-
UnsafeTypeCastWarningLevel (WarningLevel): 指示在支持它的平台上将不安全类型转换视为什么警告/错误级别(例如,double->float或int64->int32)
-
bUndefinedIdentifierErrors (Boolean): 强制将在条件表达式中使用未定义的标识符视为错误处理。
-
PCHPerformanceIssueWarningLevel (WarningLevel): 指示在哪个警告/错误级别处理潜在PCH性能问题。
-
ModuleIncludePathWarningLevel (WarningLevel): 如何处理一般模块包含路径验证消息。
-
ModuleIncludePrivateWarningLevel (WarningLevel): 如何处理私有模块包含路径验证消息,其中模块会添加公开私有头文件的包含路径。
-
ModuleIncludeSubdirectoryWarningLevel (WarningLevel): 如何处理不必要的模块子目录包含路径验证消息。
-
bRetainFramePointers (Boolean): 当你需要可靠的调用堆栈时,通常需要强制保留帧指针,例如mallocframeprofiler。
-
bRetainFramePointersOverride (Nullable
): 当你需要可靠的调用堆栈时,通常需要强制保留帧指针,例如mallocframeprofiler。 -
bUseFastMonoCalls (Boolean): 新的单块图形驱动程序具有可选的"快速调用",以替换各种D3d函数。
-
NumIncludedBytesPerUnityCPP (Int32): 要包含在单个统一C++文件中的目标C++代码的大致字节数。
-
bDisableModuleNumIncludedBytesPerUnityCPPOverride (Boolean): 禁用由模块设置的重载。
-
bStressTestUnity (Boolean): 是否通过将所有C++文件包含在来自单一统一文件的项目中来对C++ unity构建的健壮性进行压力测试。
-
bDetailedUnityFiles (Boolean): 是否向Unity文件添加额外信息,如文件名中的 '_of_X'。不推荐使用。
-
bForceDebugInfo (Boolean): 是否强制生成调试信息。
-
bDisableDebugInfo (Boolean): 是否全局禁用调试信息生成;已废弃,请改用TargetRules.DebugInfoMode。
-
DebugInfo (DebugInfoMode): 应该生成多少调试信息。请参阅DebugInfoMode枚举以了解详情。
-
DebugInfoLineTablesOnly (DebugInfoMode): 如果对于支持这样做的编译器,只应该在调试信息中发出调试行号表,则为true。重载TargetRules.DebugInfo。详情请参阅https://clang.llvm.org/docs/UsersManual.html#cmdoption-gline-tables-only。
-
bDisableDebugInfoForGeneratedCode (Boolean): 是否禁用所生成文件的调试信息生成。对于具有大量已生成粘合代码的模块,此操作可加快连接并缩小pdb。
-
bOmitPCDebugInfoInDevelopment (Boolean): 是否在PC/Mac上的开发构建中禁用调试信息(这是为了加快开发人员迭代速度,因为在禁用调试信息的情况下连接时间非常快)。
-
bUsePDBFiles (Boolean): PDB文件是否应该被用于Visual C++构建。
-
bUsePCHFiles (Boolean): 是否应该使用PCH文件。
-
bDeterministic (Boolean): 设置确定性编译和链接所需的标记。为msvc启用确定性模式会禁用codegen多线程,因此编译会变慢。
-
bChainPCHs (Boolean): 使用clang编译时,PCH是否应该链接起来。
-
bForceIncludePCHHeadersForGenCppFilesWhenPCHIsDisabled (Boolean): 禁用PCH时,是否应强制将PCH头文件包含在gen.cpp文件中。
-
bPreprocessOnly (Boolean): 是否只为此目标预处理源文件并跳过编译。
-
bPreprocessDepends (Boolean): 通过处理生成依赖文件。建议只在发布构建的时候使用,因为这会增加性能消耗。
-
bWithAssembly (Boolean): 编译此目标时是否生成程序集数据。目前专门用于MSVC。
-
StaticAnalyzer (StaticAnalyzer): 是否启用静态代码分析。
-
StaticAnalyzerOutputType (StaticAnalyzerOutputType): 静态分析器使用的输出类型。仅支持Clang。
-
StaticAnalyzerMode (StaticAnalyzerMode): 静态分析器使用的模式。仅支持Clang。浅层模式速度更快,但通常不建议使用。
-
MinFilesUsingPrecompiledHeader (Int32): 必须使用预编译头文件的最小文件数,超过此数量之后才会创建和使用预编译头文件。
-
bForcePrecompiledHeaderForGameModules (Boolean): 启用后,即使游戏模块中只有几个源文件,也会始终为其生成预编译头文件。这样可以大幅缩短项目中一些文件迭代更改的编译时间,但代价是小型游戏项目的完全重新构建会更慢。这可以通过在模块的Build.cs文件中设置MinFilesUsingPrecompiledHeaderOverride来重载。
-
bUseIncrementalLinking (Boolean): 是否使用增量链接。进行小更改时,增量链接可以加快迭代。当前默认禁用,因为它在某些计算机上容易出现一些错误(与PDB相关的编译错误)。
-
bAllowLTCG (Boolean): 是否允许使用链接时间码生成(LTCG)。
-
bPreferThinLTO (Boolean): 启用链接时间代码生成(LTCG)时,是否偏好在支持的平台上使用更轻量级的版本。
-
ThinLTOCacheDirectory (String): 在支持的平台上放置ThinLTO缓存的目录。
-
ThinLTOCachePruningArguments (String): 在支持的平台上清理ThinLTO缓存时将应用的参数。只有设置了ThinLTOCacheDirectory,才会应用参数。
-
bPGOProfile (Boolean): 是否在此构建中启用"按配置优化"(PGO)工具。
-
bPGOOptimize (Boolean): 是否使用"按配置优化"(PGO)优化此构建。
-
bCodeCoverage (Boolean): 目标是否需要代码覆盖编译和链接。
-
bSupportEditAndContinue (Boolean): 是否支持编辑并继续。
-
bOmitFramePointers (Boolean): 是否省略帧指针。禁用对某些操作很有用,如PC上的内存分析。
-
bEnableCppModules (Boolean): 是否启用对C++20模块的支持。
-
bEnableCppCoroutinesForEvaluation (Boolean): 是否启用对C++20协程的支持。提供此选项是为了便于求值。该选项名称可能会变更。在UE中使用协程未经测试且不受支持。
-
bEnableProcessPriorityControl (Boolean): 是否启用引擎在运行时设置进程优先级的功能。此选项需要在Linux上进行一些环境设置,因此默认禁用。项目必须选择使用此功能,因为它必须保证设置正确。
-
bUseMallocProfiler (Boolean): 如果为true,则在构建中启用内存分析(定义USE_MALLOC_PROFILER=1并强制bOmitFramePointers=false)。
-
bShaderCompilerWorkerTrace (Boolean): 如为true,则在着色器编译器工作程序的构建中启用Unreal Insights(utrace)分析(定义USE_SHADER_COMPILER_WORKER_TRACE=1)。
-
bUseSharedPCHs (Boolean): 启用"共享PCH",该功能将试图在UBT检测到的、包含某些PCH头文件的模块之间共享这些PCH文件,以显著加快编译。
-
bUseShippingPhysXLibraries (Boolean): 如果开发和发布构建应使用PhysX/APEX的发布配置,则为true。
-
bUseCheckedPhysXLibraries (Boolean): 如果开发和发布构建应使用已检查的PhysX/APEX配置,则为true。如果bUseShippingPhysXLibraries为true,则忽略此选项。
-
bCheckLicenseViolations (Boolean): 告知UBT检查当前正在构建的模块是否违反EULA。
-
bBreakBuildOnLicenseViolation (Boolean): 如果当前正在构建的模块违反EULA,则告知UBT中断构建。
-
bUseFastPDBLinking (Nullable
): 使用/DEBUG构建时是否使用:FASTLINK选项在Windows设备上创建本地PDB。速度很快,但目前在调试器中查找符号似乎存在问题。 -
bCreateMapFile (Boolean): 将贴图文件作为构建的一部分输出。
-
bAllowRuntimeSymbolFiles (Boolean): 如果运行时符号文件应被作为某些平台的构建后步骤生成,则为true。引擎使用这类文件解析日志中调用堆栈回溯的符号名称。
-
PackagePath (String): 链接时用于保存输入文件的包体完整路径(目录 + 文件名)。通常用来在支持的平台上调试链接器崩溃。
-
CrashDiagnosticDirectory (String): 在支持的平台上保存崩溃报告文件的目录。
-
BundleVersion (String): Mac应用的数据包版本。
-
bDeployAfterCompile (Boolean): 在需要部署的平台上编译后,是否部署可执行文件。
-
bAllowRemotelyCompiledPCHs (Boolean): 启用后,允许XGE在远程计算机上编译预编译头文件。否则,PCH将始终在本地生成。
-
bUseHeaderUnitsForPch (Boolean): 将pch替换为ifc,并改用头文件单元。这是试验性的功能,仅限msvc。
-
bCheckSystemHeadersForModification (Boolean): 在确定过时操作时,是否应检查系统路径中的头文件是否有修改。
-
bDisableLinking (Boolean): 是否禁用此目标的链接。
-
bIgnoreBuildOutputs (Boolean): 是否忽略跟踪此目标的构建输出。
-
bFormalBuild (Boolean): 表明这是用于分发的正式构建。若Build.version拥有变更列表集,并且是提升后的构建,此标记会被自动设置为true。当前绑定到此标记的唯一行为是为每个二进制文件单独编译默认资源文件,从而正确设置OriginalFilename字段。默认情况下,为减少构建时间,仅编译资源一次。
-
bFlushBuildDirOnRemoteMac (Boolean): 是否在构建之前清理远程Mac上的Builds目录。
-
bPrintToolChainTimingInfo (Boolean): 是否从编译器和连接器写入详细的计时信息。
-
bParseTimingInfoForTracing (Boolean): 是否将计时数据解析成与chrome://tracing兼容的跟踪文件。
-
bPublicSymbolsByDefault (Boolean): 是否在POSIX平台上默认公开所有符号。
-
bDisableInliningGenCpps (Boolean): 禁用对内联gen.cpp的支持。
-
ToolChainName (String): 允许重载要为此目标创建的工具链。这必须与UnrealBuildTool程序集中声明的类名称匹配。
-
MSVCCompileActionWeight (Single): MSVC编译操作的权重(CPU/内存利用率)
-
ClangCompileActionWeight (Single): Clang编译操作的权重(CPU/内存利用率)
-
bDisableUnverifiedCertificates (Boolean): 是否允许引擎配置来决定能否加载未验证的证书。
-
bAllowGeneratedIniWhenCooked (Boolean): 是否在烘焙后的构建中加载生成的ini文件(以任一方式加载的GameUserSettings.ini)
-
bAllowNonUFSIniWhenCooked (Boolean): 是否在烘焙后的构建中加载非ufs ini文件(以任一方式加载的GameUserSettings.ini)
-
bLegacyPublicIncludePaths (Boolean): 将所有公共文件夹添加为编译环境的包含路径。
-
bLegacyParentIncludePaths (Boolean): 将所有父文件夹添加为编译环境的包含路径。
-
CppStandardEngine (CppStandardVersion): 编译此目标时使用哪个C++标准(对于引擎模块)。
-
CppStandard (CppStandardVersion): 编译该目标时使用哪个C++标准(对于非引擎模块)。
- CStandard (CStandardVersion): 编译该目标时使用哪个C标准。 q
-
MinCpuArchX64 (MinimumCpuArchitectureX64): 在支持的x64平台上,指示编译器在使用SSE或AVX固有属性的所有地方生成AVX指令。请注意,启用此项后,会更改PC平台的minspec,由此得到的可执行文件在不支持AVX的计算机上将会崩溃。
-
BuildVersion (String): 构建版本字符串。
-
LinkType (TargetLinkType): 指定如何链接此目标中的模块(单块或模块化)。这在目前受到保护以实现向后兼容性。调用GetLinkType()访问器,直到删除对已废弃ShouldCompileMonolithic()重载的支持。
-
LaunchModuleName (String): 指定启动模块的名称。对于模块化构建,这是编译到目标可执行文件中的模块。
-
ExportPublicHeader (String): 指定要写入头文件的路径,该头文件包含此目标的公共定义。适合在构建要由外部构建进程使用的DLL时使用。
-
BuildEnvironment (TargetBuildEnvironment): 指定此目标的构建环境。参阅TargetBuildEnvironment,了解有关可用选项的更多信息。
-
bOverrideBuildEnvironment (Boolean): 是否忽略违反共享构建环境的情况(例如,编辑器目标修改定义)
-
AdditionalCompilerArguments (String): 传递至编译器的附加参数。
-
AdditionalLinkerArguments (String): 传递至链接器的附加参数。
-
MemoryPerActionGB (Double): 每个编译操作可能需要的最大内存量。由ParallelExecutor使用,以决定同时启动的最大并行操作数。
- GeneratedProjectName (String): 生成项目文件时,指定存在多个类型相同的目标时要使用的项目文件的名称。