虚幻构建工具(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;
// 其他属性放在此处
}
}
只读属性
$ Platform (UnrealTargetPlatform):要为哪个平台构建此目标。
$ Configuration (UnrealTargetConfiguration):正在构建的配置。
$ Architectures (UnrealArchitectures):要为哪个架构构建此目标(默认值为空字符串)。
$ ProjectFile (FileReference):包含此目标的项目的项目文件路径。
$ Version (ReadOnlyBuildVersion):当前构建版本
$ IsTestTarget (Boolean):此目标是否为低级测试目标。
$ ExplicitTestsTarget (Boolean):此目标是否为显式定义的测试目标。显式定义的测试目标总是从TestTargetRules继承并定义其自己的测试。隐式测试目标是在使用 -Mode=Test 构建时基于现有目标创建的,它们包括来自所有依赖项的测试。
$ WithLowLevelTests (Boolean):控制 WITH_LOW_LEVEL_TESTS 的数值,该数值指示是否对模块特有低级测试进行内编译。
$ Architecture (UnrealArch):在架构中只有单一架构的正常情况下获取该架构(如果指定了多个架构,此属性将引发异常)。
$ HostPlatform (UnrealTargetPlatform):获取正在构建的主机平台。
$ bGenerateProjectFiles (Boolean):将 bGenerateProjectFiles 标记公开给目标,这样我们就可以适当地修改行为,获得更好的智能提示。
$ bShouldTargetRulesTogglePlugins (Boolean):指示是否应使用目标规则来显式启用或禁用插件。除非项目文件指明是否应该构建引用插件,否则对于项目生成来说通常不需要。
$ bIsEngineInstalled (Boolean): 公开表示是否已安装引擎的设置。
读写属性
$ Type (TargetType):目标的类型。
$ ForcedIncludeOrder (Nullable
$ 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 后缀的配置。
$ bBuildAllModules (Boolean):构建对该目标类型有效的所有模块。用于CIS和制作已安装的引擎版本。
$ VSTestRunSettingsFile (FileReference):将此属性设为可引用生成的项目中的VSTest运行设置文件。
$ BuildPlugins (List
$ bRuntimeDependenciesComeFromBuildPlugins (Boolean):如果此属性为true,将使用 BuildPlugins 而不是 EnablePlugins 列表填充 RuntimeDependencies 。
$ AdditionalPlugins (List
$ EnablePlugins (List
$ DisablePlugins (List
$ InternalPluginDependencies (List
$ PakSigningKeysFile (String):内嵌到可执行文件中的pak签名密钥集的路径。
$ SolutionDirectory (String):允许程序目标指定自身的解决方案文件夹路径。
$ bBuildInSolutionByDefault (Nullable
$ bShouldCompileAsDLL (Boolean):是否应将此目标构建为DLL。 需要将 LinkType 设置为 TargetLinkType.Monolithic 。
$ CustomConfig (String):用于加载配置文件的额外子目录,用于在同一平台上进行多种类型的构建。此属性将作为 CUSTOM_CONFIG 烘焙到游戏可执行文件中,并在暂存到过滤文件和设置时使用。
$ ExeBinariesSubFolder (String):用于放置可执行文件的子文件夹,相对于默认位置。
$ GeneratedCodeVersion (EGeneratedCodeVersion):允许目标模块覆盖UHT代码生成版本。
$ bEnableMeshEditor (Boolean):是否启用网格体编辑器。
$ bCompileChaos (Boolean):是否编译Chaos物理系统插件。
$ bUseChaos (Boolean):是否使用Chaos物理系统接口。此属性将覆盖Physx标记以禁用APEX和NvCloth。
$ bUseChaosChecked (Boolean):是否在勾选的Chaos功能中编译以进行调试。
$ bUseChaosMemoryTracking (Boolean):是否在Chaos内存追踪功能中编译。
$ 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支持中编译
$ bUseIris (Boolean):是否使用Iris。
$ bForceBuildTargetPlatforms (Boolean):是否强制编译目标平台模块,即使其通常不会被构建也同样如此。
$ bForceBuildShaderFormats (Boolean):是否强制编译着色器格式模块,即使其通常不会被构建也同样如此。
$ bNeedsExtraShaderFormatsOverride (Nullable
$ bCompileCustomSQLitePlatform (Boolean):应使用自定义"虚幻"平台(true)还是使用原生平台(false)编译SQLite。
$ bUseCacheFreedOSAllocs (Boolean):是否用 MallocBinned 来利用缓存释放的OS分配。
$ bCompileRecast (Boolean):是否编译Recast寻路网格体生成。
$ bCompileNavmeshSegmentLinks (Boolean):是否使用寻路网格体片段连接进行编译。
$ bCompileNavmeshClusterLinks (Boolean):是否使用寻路网格体群集链接进行编译。
$ bForceEnableExceptions (Boolean):为所有模块启用异常。
$ bUseInlining (Boolean):为所有模块启用内联。
$ bForceEnableObjCExceptions (Boolean):为所有模块启用异常。
$ bForceEnableRTTI (Boolean):为所有模块启用RTTI。
$ bEnablePIE (Boolean):启用位置无关可执行文件(PIE)。有间接开销。
$ bEnableStackProtection (Boolean):启用堆栈保护。有间接开销。
$ bCompileWithStatsWithoutEngine (Boolean):是否包含统计数据支持,即使没有引擎也不例外。
$ bCompileWithPluginSupport (Boolean):是否包含插件支持。
$ bCompileWithAccessibilitySupport (Boolean):是否在Slate和OS层中均允许无障碍代码。
$ bUseDebugLiveCodingConsole (Boolean):是否启用对实时编码的支持
$ bWithDirectXMath (Boolean):是否启用对DirectX Math的支持。
$ bWithFixedTimeStepSupport (Boolean):是否在引擎中启用对 FixedTimeStep 的支持。
$ bUseLoggingInShipping (Boolean):是否开启测试/发布版本的日志记录功能。
$ bLoggingToMemoryEnabled (Boolean):是否开启测试/发布版本的记录到内存功能。
$ bUseLauncherChecks (Boolean):是否检查进程是否通过外部启动程序进行启动。
$ bUseChecksInShipping (Boolean):是否开启测试/发布版本的检查(断言)。
$ bTCHARIsUTF8 (Boolean):是否开启UTF-8模式,将 TCHAR 映射到 UTF8CHAR 。
$ bUseEstimatedUtcNow (Boolean): 是否使用 EstimatedUtcNow 或 PlatformUtcNow 。 某些情况下, PlatformUtcNow 的速度可能较慢,这时适合使用 EstimatedUtcNow 。
$ bCompileFreeType (Boolean):如果需要FreeType支持,则设为True。
$ bUseExecCommandsInShipping (Boolean):是否为发布版本开启允许执行命令。
$ bCompileForSize (Boolean):如果我们为了优化的规模而牺牲速度,则设为True。
$ OptimizationLevel (OptimizationMode):允许针对速度和/或代码规模微调优化级别。
$ bForceCompileDevelopmentAutomationTests (Boolean):是否编译开发自动化测试。
$ bForceCompilePerformanceAutomationTests (Boolean):是否编译性能自动化测试。
$ bForceDisableAutomationTests (Boolean):是否覆盖自动化测试的默认值(调试/开发配置)。
$ bEventDrivenLoader (Boolean):如为true,将在烘焙版本中使用事件驱动加载程序。
$ NativePointerMemberBehaviorOverride (NullableTObjectPtr 成员代替。
$ bUseXGEController (Boolean):XGE控制器工作程序和模块是否应包含在引擎构建中。这些是使用XGE拦截接口进行分布式着色器编译所必需的。
$ bIWYU (Boolean):为该目标中的模块默认启用"include what you use"。将此项目中所有模块的默认PCH模式都改为 PCHUsageMode.UseExplicitOrSharedPCHs。
$ bIWYUHeadersOnly (Boolean):指示"include what you use"只编译头文件。
$ bEnforceIWYU (Boolean):强制执行"include what you use"规则;如果使用单块头文件( Engine.h 、 UnrealEd.h 等),则发出警告,并检查确认源文件先包含与其匹配的头文件。
$ bPrecompile (Boolean):将所有引擎模块的静态库设为此目标的中间物。
$ bEnableOSX109Support (Boolean):是否应在启用OS X 10.9 Mavericks支持的情况下进行编译。用于为与此版OS X兼容而需要的某些工具。
$ bIsBuildingConsoleApplication (Boolean):如果正在构建的是控制台应用程序,则为true。
$ bDisableSymbolCache (Boolean):如果为某些平台缓存的调试符号不应被创建,则为True。
$ bForceUnityBuild (Boolean):是否强制将C++源文件合并为更大的文件,从而加快编译速度。
$ bMergeModuleAndGeneratedUnityFiles (Boolean):是否合并模块和生成的Unity文件,以加快编译速度。
$ bUseAdaptiveUnityBuild (Boolean):使用启发法确定当前正在迭代哪些文件并将它们从Unity Blob中排除,从而加快增量编译。当前实现使用只读标记区分工作集,假定文件在被修改时将被源代码控制系统设为可写。这对于Perforce为true,但对Perforce则不然。
$ bAdaptiveUnityDisablesOptimizations (Boolean):禁止优化位于自适应非Unity工作集中的文件。
$ bAdaptiveUnityDisablesPCH (Boolean):禁用对位于自适应非Unity工作集中文件强制包含PCH。
$ bAdaptiveUnityCreatesDedicatedPCH (Boolean):为工作集中的每个源文件创建专用的PCH,从而允许对仅限cpp的更改进行更快的迭代。
$ bAdaptiveUnityEnablesEditAndContinue (Boolean):为工作集中的每个源文件创建专用的PCH,从而允许对仅限cpp的更改进行更快的迭代。
$ bAdaptiveUnityCompilesHeaderFiles (Boolean): 为工作集中的每个头文件创建专用源文件,以便检测头文件中缺少的包含。
$ MinGameModuleSourceFilesForUnityBuild (Int32):将为该模块激活Unity构建之前游戏模块中的源文件数量。 这允许小型游戏模块加快对单个文件的迭代编译,但代价是完全重新构建会更慢。 该设置可被模块的 .Build.cs 文件中的 bFasterWithoutUnity 选项覆盖。
$ ShadowVariableWarningLevel (WarningLevel):强制阴影变量警告在支持它的平台上被视为错误。
$ bWarningsAsErrors (Boolean): 是否将全部警告作为错误启用。UE已经将大多数警告作为错误启用,但禁用了一些警告(例如废弃警告)。
$ UnsafeTypeCastWarningLevel (WarningLevel):指示在支持它的平台上将不安全类型转换视成什么警告/错误级别(例如,double->float或int64->int32)
$ bUndefinedIdentifierErrors (Boolean):强制在条件表达式中使用未定义的标识符被视为错误处理。
$ bRetainFramePointersOverride (Nullablemallocframeprofiler )时,通常需要此属性。
$ bUseFastMonoCalls (Boolean):新的单块图形驱动程序具有可选的"快速调用",替换各种D3d函数
$ NumIncludedBytesPerUnityCPP (Int32):要包含在单个统一C++文件中的目标C++代码的大致字节数。
$ bDisableModuleNumIncludedBytesPerUnityCPPOverride (Boolean):禁用由模块设置的覆盖
$ bStressTestUnity (Boolean):是否通过将所有C++文件包含在来自单一统一文件的项目中来对C++ Unity构建健壮性进行压力测试。
$ bDetailedUnityFiles (Boolean):是否向Unity文件添加额外信息,如文件名中的 '_of_X'。
$ bForceDebugInfo (Boolean):是否强制生成调试信息。
$ bDisableDebugInfo (Boolean):是否全局禁用调试信息生成;有关每个配置和每个平台的选项,请参阅DebugInfoHeuristics.cs。
$ bDisableDebugInfoForGeneratedCode (Boolean):是否禁用所生成文件的调试信息生成。对于具有大量已生成粘合代码的模块,此操作可加快连接。
$ bOmitPCDebugInfoInDevelopment (Boolean):是否在开发版本中在PC/Mac上禁用调试信息(为了加快开发人员迭代,因为在禁用调试信息的情况下连接时间非常快)。
$ bUsePDBFiles (Boolean):PDB文件是否应该用于Visual C++构建。
$ bUsePCHFiles (Boolean):是否应该使用PCH文件。
$ bDeterministic (Boolean):设置确定性链接所需的标记(试验性,不一定得到完全支持)。确定性编译通过 ModuleRules 控制。
$ bForceDeterministic (Boolean):强制设置确定性编译和连接所需的标记(试验性,不一定得到完全支持)。此设置仅建议用于测试,可改用其他属性:
在 ModuleRules 中按模块设置 bDeterministic ,可控制确定性编译。
在 TargetRules 中按目标设置 bDeterministic ,可控制确定性链接。
$ bForceIncludePCHHeadersForGenCppFilesWhenPCHIsDisabled (Boolean):禁用PCH时,是否应强制将PCH头文件包含在 gen.cpp 文件中。
$ bPreprocessOnly (Boolean):是否只为此目标预处理源文件并跳过编译
$ bPreprocessDepends (Boolean):通过预处理生成依赖性文件。建议仅在发行版本时使用此属性,因为它会增加额外的开销。
$ 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)优化此构建。
$ 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将始终在本地生成。
$ 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程序集中声明的类名称匹配。
$ bDisableUnverifiedCertificates (Boolean):是否允许引擎配置确定能否加载未验证的证书。
$ bAllowGeneratedIniWhenCooked (Boolean):是否在烘焙后的版本中加载生成的ini文件(以任一方式加载的 GameUserSettings.ini )。
$ bAllowNonUFSIniWhenCooked (Boolean):是否在烘焙后的版本中加载非UFS ini文件(以任一方式加载的 GameUserSettings.ini )。
$ CppStandard (CppStandardVersion):用于编译此目标的C++标准
$ CStandard (CStandardVersion):用于编译此目标的C标准
$ BuildVersion (String):构建版本字符串
$ GlobalDefinitions (List
$ ProjectDefinitions (List
$ ExportPublicHeader (String):指定要写入头文件的路径,该头文件包含此目标的公共定义。适合在构建要由外部构建进程使用的DLL时使用。
$ ExtraModuleNames (List
$ ManifestFileNames (List
$ DependencyListFileNames (List
$ bOverrideBuildEnvironment (Boolean):是否忽略对共享构建环境的违反(例如编辑器目标修改定义)
$ PreBuildTargets (List
$ PreBuildSteps (List
$(EngineDir)$(ProjectDir)$(TargetName)$(TargetPlatform)$(TargetConfiguration)$(TargetType)$(ProjectFile)
$ PostBuildSteps (List
$(EngineDir)$(ProjectDir)$(TargetName)$(TargetPlatform)$(TargetConfiguration)$(TargetType)$(ProjectFile)
$ AdditionalBuildProducts (List
$ AdditionalCompilerArguments (String):传递至编译器的附加参数
$ AdditionalLinkerArguments (String):传递至链接器的附加参数
$ MemoryPerActionGB (Double):每个编译操作可能需要的最大内存量。由 ParallelExecutor 用于决定同时启动的最大并行操作数。
$ DisableUnityBuildForModules (String[]):禁用Unity构建的模块列表
$ EnableOptimizeCodeForModules (String[]):启用优化的模块列表
$ DisableOptimizeCodeForModules (String[]):禁用优化的模块列表
$ GeneratedProjectName (String):生成项目文件时,指定存在多个类型相同的目标时要使用的项目文件的名称。
$ OptedInModulePlatforms (UnrealTargetPlatform[]):如果此为非空,那么未列出的平台都将不允许在其目录中创建模块
$ Name (String):此目标的名称
$ DefaultBuildSettings (BuildSettingsVersion):指定用于维护向后兼容的默认构建设置的引擎版本(例如 DefaultSettingsVersion.Release_4_23 、 DefaultSettingsVersion.Release_4_24 )。指定 DefaultSettingsVersion.Latest 可始终使用当前引擎版本的默认值,但有可能在升级时引入构建错误。
$ IncludeOrderVersion (EngineIncludeOrderVersion):编译此目标时使用哪个版本的包含顺序。可在命令行中使用 -ForceIncludeOrder 来覆盖。ModuleRules.IncludeOrderVersion 具有优先权。
$ bAllowHotReload (Boolean):此目标是否支持热重载
$ bUseGameplayDebugger (Boolean):是否在为引擎的所有默认Gameplay调试器类别启用 WITH_GAMEPLAY_DEBUGGER 的情况下进行编译。
$ bUseGameplayDebuggerCore (Boolean):当 bUseGameplayDebugger 为false,但需要GameplayDebugger的核心部分时,设置为true。
$ bBuildEditor (Boolean):是否编译编辑器代码。首选改用更显式的 bCompileAgainstEditor 。
$ bBuildRequiresCookedData (Boolean):是否编译与构建资产相关的代码。主机通常无法构建资产。台式平台一般都可以。
$ bBuildWithEditorOnlyData (Boolean): 是否编译禁用的 WITH_EDITORONLY_DATA 。仅Windows会使用它,其他平台会强制它为false。
$ bBuildDeveloperTools (Boolean): 是否编译开发人员工具。
$ bBuildTargetDeveloperTools (Boolean): 是否编译用于目标平台或连接设备的开发人员工具(默认为 bBuildDeveloperTools )。
$ bNeedsExtraShaderFormats (Boolean):是否应该包含额外的着色器格式。默认仅为程序和编辑器目标启用此属性。
$ bCompileAgainstEngine (Boolean):为所有包含引擎项目的构建启用。 仅在构建仅与Core链接的独立应用时禁用。
$ bCompileAgainstCoreUObject (Boolean):为所有包含 CoreUObject 项目的构建启用。 仅在构建仅与Core链接的独立应用时禁用。
$ bCompileAgainstApplicationCore (Boolean):为需要初始化ApplicationCore模块的构建启用。命令行实用程序通常不需要此属性。
$ bCompileAgainstEditor (Boolean):为编辑器版本( TargetType.Editor )启用。对于需要根据编辑器代码进行编译的程序( TargetType.Program ),可以覆盖。不可用于其他目标类型。主要驱动 WITH_EDITOR 的数值。
$ bCompileSpeedTree (Boolean):是否应该内编译对SpeedTree的支持。
$ bWithServerCode (Boolean):编译仅服务器代码。
$ bFNameOutlineNumber (Boolean):在 FName 将数字部分存储在名称表的情况下进行编译。当大多数名称未编号且已编号的名称被多次引用时,可节省内存。游戏和引擎必须确保它们重复使用类似于名称字符串的编号名称,以避免内存泄漏。
$ bWithPushModel (Boolean):启用后,将编译推送模型网络支持。这有助于减少网络的CPU开销,但内存开销更大。始终在编辑器构建中启用。
$ bIncludePluginsForTargetPlatforms (Boolean): 是否允许支持所有目标平台的插件。
$ bWithPerfCounters (Boolean): 是否包括PerfCounters支持。
$ bWithLiveCoding (Boolean): 是否启用对实时编码的支持
$ bHasExports (Boolean): 最终的可执行文件是否应该导出符号。
$ bBuildAdditionalConsoleApp (Boolean): 如果为true,则创建额外的控制台应用程序。Windows破解,根据应用程序的调用方式,无法有条件地继承父项的控制台窗口;你必须将相同的可执行文件与不同的子系统设置链接。
$ bUseUnityBuild (Boolean): 是否将C++代码统一到更大的文件中,从而加快编译。
$ bAdaptiveUnityDisablesPCHForProject (Boolean): 是否为自适应非Unity工作集中的项目源文件禁用强制包含的PCH。默认值为 bAdaptiveUnityDisablesPCH 。
$ DefaultWarningLevel (WarningLevel):未分类警告的默认处理
$ DeprecationWarningLevel (WarningLevel): 将废弃警告报告为错误的级别
$ bRetainFramePointers (Boolean):强制保留帧指针,当你需要可靠的调用堆栈(例如 mallocframeprofiler )时,通常需要此属性
$ bLegacyPublicIncludePaths (Boolean):添加所有公共文件夹为编译环境的包含路径。
$ bLegacyParentIncludePaths (Boolean):添加所有父文件夹作为编译环境的包含路径。
$ LinkType (TargetLinkType):指定如何链接此目标中的模块(单块或模块化)。这在目前受到保护以实现向后兼容性。调用 GetLinkType 访问器,直到删除对已废弃 ShouldCompileMonolithic 覆盖的支持。
$ LaunchModuleName (String):指定启动模块的名称。对于模块化构建,这是编译到目标可执行文件中的模块。
$ BuildEnvironment (TargetBuildEnvironment): 指定此目标的构建环境。如需有关可用选项的更多信息,请参阅 TargetBuildEnvironment 。