除添加到 Config/UnrealBuildTool 文件夹中已生成UE4项目外,虚幻编译工具还会从以下位置(Windows系统)的XML配置文件读取设置:
-
Engine/Saved/UnrealBuildTool/BuildConfiguration.xml
-
User Folder/AppData/Roaming/Unreal Engine/UnrealBuildTool/BuildConfiguration.xml
-
My Documents/Unreal Engine/UnrealBuildTool/BuildConfiguration.xml
如果是Linux和Mac,则会从以下路径读取:
-
/Users/
/.config//Unreal Engine/UnrealBuildTool/BuildConfiguration.xml -
/Users/
/Unreal Engine/UnrealBuildTool/BuildConfiguration.xml
请继续阅读并了解下列属性的详情,这将有助于你设置和自定义编译配置。
$ bGeneratedSYMFile : 是否生成dSYM文件。除了发布版本外,所有其他版本都不会默认生成该文件。-dsym 会强制为其他版本生成一个dsym文件, * NoDsym 会强制禁止发布版本生成该文件。
$ bEnableAddressSanitizer: 启用地址检测工具(ASan)
$ bEnableThreadSanitizer: 启用线程检测工具(TSan)
$ bEnableUndefinedBehaviorSanitizer: 启用未定义的行为检测工具(UBSan)
$ BaseLogFileName: 指定用于日志记录的文件。
$ bAllowDistccLocalFallback: 启用后,远程编译失败时DMUCS/Distcc可退却到本地编译。默认为true,因为预处理和编译阶段分离可能导致非致命错误。
$ bVerboseDistccOutput: 为true时,将启用冗长distcc输出来协助调试。
$ DistccExecutablesPath: Distcc和DMUCS可执行文件的路径。
$ DMUCSCoordinator: DMUCS协调器主机名或IP地址。
$ DMUCSDistProp: DMUCS区分请求编译主机的属性值。
$ bXGENoWatchdogThread: 是否使用no_watchdog_thread选项来防止VS2015工具链停滞。
$ bShowXGEMonitor: 是否显示XGE编译监视器。
$ bStopXGECompilationAfterErrors: 启用时,XGE将在发生编译错误后停止编译目标。建议启用,因为会节省计算资源。
$ bWriteSolutionOptionFile: 是否编写sln的解决方案选项(suo)文件。
$ bAddFastPDBToProjects: 是否默认添加-FastPDB选项来编译命令行。
$ bUsePerFileIntellisense: 是否生成每个文件的智能感应数据。
$ bEditorDependsOnShaderCompileWorker: 生成编辑器的项目文件时是否包含ShaderCompileWorker上的依赖性。
$ bDebugBuildsActuallyUseDebugCRT: 启用调试版本的调试C++运行时(CRT)。默认固定使用发布运行时,因为调试虚幻引擎项目时调试版本并不十分实用,且链接到调试CRT库将强制使用调试CRT编译第三方库依赖项(执行速度通常较慢)。如果需要第三方静态库调试版本的单独副本才能调试程序代码,那么僵不甚便利。
$ bUseInlining: 启用所有模块的内联。
$ bUseDebugLiveCodingConsole: 是否启用支持实时编码
$ bUseXGEController: XGE控制器工作器和模块是否应包含在引擎版本中。其为使用XGE拦截接口的已发布着色器编译的必须内容。
$ bUseUnityBuild: 是否将C++代码统一为更大文件以加快编译速度。
$ bForceUnityBuild: 是否强制将C++源文件合并为更大文件以加快编译速度。
$ bUseAdaptiveUnityBuild: 使用启发法确定当前正被迭代的文件,并将其从集合体中排除出来,使增量编译速度加快。当前实现使用只读标志区分工作集。假定文件正被编辑,源控制系统会将其设为可写入。Perforce为true,但Git不为true。
$ bAdaptiveUnityDisablesOptimizations: 禁用自适应非统一工作集中文件的优化。
$ bAdaptiveUnityDisablesPCH: 禁用自适应非统一工作集中文件的强制包含PCH。
$ bAdaptiveUnityDisablesProjectPCHForProjectPrivate: 支持存储bAdaptiveUnityDisablesProjectPCH。
$ bAdaptiveUnityCreatesDedicatedPCH: 创建工作集中每个源文件的专属PCH,以加快纯cpp修改上的迭代速度。
$ bAdaptiveUnityEnablesEditAndContinue: 创建工作集中每个源文件的专属PCH,以加快纯cpp修改上的迭代速度。
$ MinGameModuleSourceFilesForUnityBuild: 统一编译前游戏模块将在游戏模块中对此模块进行启用的源文件数量。这使得小型游戏模块在单一文件上拥有更快的迭代编译时间,而代价则是完整重编译时间更长。该设置可被模块的Build.cs文件中的bFasterWithoutUnity选项覆盖。
$ UnsafeTypeCastWarningLevel : 指定平台上不安全类型转换触发的警告/错误等级(例如double->float或int64->int32)。
$ bUndefinedIdentifierErrors: 强制将条件表达式中的未定义辨识符视为错误。
$ bUseFastMonoCalls: 全新的单块图像驱动拥有可选的“快速调用”来替代诸多D3d函数。
$ bUseFastSemanticsRenderContexts: 全新Xbox驱动支持“快速语意”情境类型。针对即时和延迟情境启用。如果Xbox RHI中出现渲染问题和/或崩溃,请尝试禁用此项。
$ NumIncludedBytesPerUnityCPP: 目标包含在单个统一C++文件中的C++代码字节近似数。
$ bStressTestUnity: 是否将来自单一统一文件的所有C++文件包含在一个项目中,对C++统一版本的健壮性进行测试。
$ bDisableDebugInfo: 是否全局禁用调试信息生成;请参见DebugInfoHeuristics.cs了解每个配置和每个平台的选项。
$ bDisableDebugInfoForGeneratedCode: 是否禁用已生成文件的调试信息生成。这将改善拥有大量已生成胶水代码的模块的链接时间。
$ bOmitPCDebugInfoInDevelopment: 是否在PC上的开发构建版中禁用调试信息(可提高开发者迭代速度,因为调试信息禁用后链接速度极快)。
$ bUsePDBFiles: 是否应将PDB文件用于Visual C++版本。
$ bUsePCHFiles: 是否应使用PCH文件。
$ MinFilesUsingPrecompiledHeader: 在创建和使用前必须使用预编译标头的最小文件数。
$ bForcePrecompiledHeaderForGameModules: 启用后,将固定为游戏模块生成预编译标头,即使模块中只有数个源文件也不例外。这会极大缩短对项目中数个文件进行迭代变化的编译时间,但小型游戏项目的完整重编译时间会变长。在模块的Build.cs文件中设置MinFilesUsingPrecompiledHeaderOverride即可覆盖此属性。
$ bUseIncrementalLinking: 是否使用增量链接。进行小更改时,增量链接可加快迭代速度。当前默认禁用,因为其在某些计算机上会导致错误(PDB相关编译错误)。
$ bAllowLTCG: 是否允许使用链接时间代码生成(LTCG)。
$ bPGOProfile: 是否在此版本中启用PGO插桩。
$ bPGOOptimize: 是否用“配置引导优化”(PGO)优化此版本。
$ bSupportEditAndContinue: 是否支持编辑和继续。仅可在Microsoft编译器上使用。
$ bOmitFramePointers: 是否忽略帧指针。禁用适用于PC上内存分析之类的操作。
$ bUseMallocProfiler: 如为true,则在版本中启用内存分析(定义USE_MALLOC_PROFILER=1并强制bOmitFramePointers=false)。
$ bUseSharedPCHs: 启用“共享PCH”,该功能会尝试在UBT检测包含PCH头文件的模块之间共享特定的PCH文件,从而大大加快编译速度。
$ bUseShippingPhysXLibraries: 如开发和发布版本应使用PhysX/APEX的发布配置,则为true。
$ bUseCheckedPhysXLibraries: 如开发和发布版本应使用PhysX/APEX的勾选配置,则为true。如bUseShippingPhysXLibraries为true,则此项将被忽略。
$ bCheckLicenseViolations: 如当前正在编译的模块违反EULA,则告知UBT进行检查。
$ bBreakBuildOnLicenseViolation: 如当前正在编译的模块违反EULA,则告知UBT中断编译。
$ bUseFastPDBLinking: 带/DEBUG进行编译在Windows上创建PDB时,是否使用:FASTLINK选项。速度较快,但当前在调试器中似乎存在寻找符号的问题。
$ bCreateMapFile: 将地图文件作为版本的一部分进行输出。
$ bAllowRuntimeSymbolFiles (Boolean): 如果某些平台需要将生成运行时符号文件作为编译后步骤则为True。引擎使用这些文件解析日志中调用栈回溯的符号名。
$ bCheckSystemHeadersForModification: 确定过期操作时是否应检查系统路径中标头的修改。
$ bFlushBuildDirOnRemoteMac: 在编译前是否在远程Mac上清理版本目录。
$ bPrintToolChainTimingInfo: 是否从编译器和链接器写入细节时间信息。
$ bParseTimingInfoForTracing: 是否将时间数据解析到与chrome://tracing兼容的追踪文件中。
$ bPublicSymbolsByDefault: 是否在POSIX平台上默认公开所有符号
$ CppStandard: 用于编译此目标的C++标准
$ bStripSymbols: 是否剥离iOS符号(由发布配置暗示)。
$ bEnableMemorySanitizer : 启用内存杀毒(MSan)
$ bIgnoreOutdatedImportLibraries: 编译目标时是否忽略过期的导入库文件。将该属性设为true可缩短迭代时间。如果只有一个依赖.lib已修改,默认将不会重新链接目标,因为导入库在此目标的依赖性头文件发生改变之前不会实际发生变化,在此情况下目标将会被自动重编译。
$ bPrintDebugInfo: 是否应将调试信息写入控制台。
$ bLogDetailedActionStats: 是否应记录详细操作数据。这将强制进行本地执行。
$ bAllowHybridExecutor: 是否使用混合执行器(远程执行器和本地执行器)。
$ bAllowXGE: 是否可以使用XGE。
$ bAllowFASTBuild : 是否可以使用FASTBuild。
$ bAllowSNDBS: 是否可以使用SN-DBS。
$ bUseUBTMakefiles: 通过缓存目标数据来启用极快迭代编译支持。开启此项后,首次编译目标时虚幻编译工具将发射目标的 'UBT Makefiles'。之后的编译将加载这些Makefiles并开始过期性检查并极快地编译调用。警告:如项目添加或移除了源文件,UBT将需要收集这些文件的信息,以便编译成功完成。当前版本中,添加/移除源文件后必须运行项目文件生成器,告知UBT来重新收集此信息。 可导致“UBT Makefile”失效的事件: 添加/删除.cpp文件 添加/删除含UObjects的.h文件 将一个新UObject类型添加到之前不含此类型的文件中 修改整体编译设置(此文件中的多数设置均有资格) 影响虚幻标头工具工作方式的已修改代码 传递“-gather”参数或直接重新生成项目文件,可强制重新生成“UBT Makefile” 。 这也将启用快速包含文件依赖性扫描和缓存系统,其使虚幻编译工具能够很快地检测出过期依赖性。启用后,深度C++包含图表无需被生成,只会在依赖性编译产品确认过期后才扫描并缓存间接包含。在下次编译中,我们将加载这些缓存的间接包含,并检查过期内容。
$ bAllowDistcc: 是否可以使用DMUCS/Distcc。Distcc需要一些设置,因此其默认为禁用,不会中断本地或远程编译。
$ bAllowParallelExecutor: 是否允许在Windows上使用并列执行器。
$ MaxParallelActions : 可以并列执行的操作数量。如果为0则代码将根据可用的核数量选择一个默认的。只适用于并列执行器。
混合执行器
$ MaxLocalActions: 本地执行的最大操作数量。
编译模式
$ bIgnoreJunk: 是否跳过检查垃圾清单识别出的文件。
项目文件生成器
$ DisablePlatformProjectGenerators: 禁用本地项目文件生成器所针对的平台。拥有本地项目文件生成器的平台通常需要IDE扩展才能安装。
$ Format: 生成的项目文件格式的默认列表。
$ bGenerateIntelliSenseData: 如生成智能感应数据(需较长时间),则为true。
$ bIncludeDocumentation: 如需要包含已生成项目中的文件,则为true。
$ bAllDocumentationLanguages: 如在已生成项目中包含所有文档语言则为true,否则仅包含“INT”文件。
$ bUsePrecompiled: 如编译目标传递-useprecompiled参数,则为true。
$ bIncludeEngineSource: 如在已生成解决方案中包含引擎源,则为true。
$ bIncludeEnterpriseSource: 是否在已生成解决方案中包含企业源。
$ bIncludeShaderSource: 如在生已成项目中包含着色器源文件,则为true。
$ bIncludeBuildSystemFiles: 如包含编译系统文件,则为true。
$ bIncludeConfigFiles: 如在已生成项目中包含配置(.ini)文件,则为true。
$ bIncludeLocalizationFiles: 如在已生成项目中包含本地化文件,则为true。
$ bIncludeTemplateFiles: 如在已生成项目中包含模板文件,则为true。
$ IncludeEnginePrograms: 如在已生成解决方案中包含程序项目,则为true。
$ bIncludeTempTargets: 是否包含UAT生成的临时目标,以支持含非默认设置的纯内容项目。
$ bIncludeDotNETCoreProjects: 如在已生成解决方案中包含.NET Core项目,则为true。
$ bKeepSourceSubDirectories: 如在主项目中将磁盘上的“Source”子目录反映为主项目目录,则为true。此设置(可能)会将部分可视集群添加到主项目,但有助于整理磁盘文件。
$ Platforms : 生成的项目文件中包含的平台名称
$ Configurations : 要包含在生成项目文件中的配置名称,可查看UnrealTargetConfiguration了解有效的条目
$ MasterProjectName : 主项目文件的名称——例如,Visual Studio解决方案文件的基本文件名,或Mac上的Xcode项目文件。
$ bMasterProjectNameFromFolder : 如为true,则根据主项目所在文件夹的命名设置主项目的命名。
$ bIncludeTestAndShippingConfigs: 是否在已生成项目中包含“测试”和“发布”配置。传递“-NoShippingConfigs”可禁用此设置。
本地执行器
$ ProcessorCountMultiplier: 本地执行的处理器计数乘数。设为小于1可为其他任务保留CPU。使用本地执行器(非XGE)时,在每个CPU核心上运行单一操作。注意: 可将该属性设为较大的值,在多数情况下可稍微提高编译速度,但电脑在编译期间的响应速度将变慢。
$ MaxProcessorCount: 本地执行的最大处理器数量。
并列执行器
$ MaxProcessorCount: 本地执行的最大处理器数量。
$ ProcessorCountMultiplier: 本地执行的处理器计数乘数。设为小于1可为其他任务保留CPU。
$ bStopCompilationAfterErrors: 启用时,将在发生编译错误后停止编译目标。
XGE
$ bAllowOverVpn : 设置为否时,XGE不会。启用后,XGE会在编译错误出现后,停止编译目标。推荐使用它,因为它能为其他环节节省计算资源。
$ VpnSubnets : 包含VPN分配的IP地址的子网列表
FASTBuild
$ FBuildExecutablePath : 用于指定 fbuild.exe 的位置(如果发布的二进制文件未使用)
$ bEnableDistribution : 控制网络构建分布(network build distribution)
$ FBuildBrokeragePath : 用于指定中间件的位置。如为null,则FASTBuild退回检查FASTBUILD_BROKERAGE_PATH
$ bEnableCaching : 控制是否使用缓存。仅当该选项启用后,CachePath和FASTCacheMode才会相关。
$ CacheMode : 缓存访问模式 - 仅当bEnableCaching为真时相关;
$ FBuildCachePath : 用于指定缓存的位置。如为null,FASTBuild会退回检查FASTBUILD_CACHE_PATH
$ bForceRemote : 是否强制远程
$ bStopOnError : 是否在错误上停止
$ MsvcCRTRedistVersion : 使用哪个MSVC CRT Redist版本
CLion生成器
$ bIncludeDocumentation: 如在已生成项目中包含文档,则为true。
$ bUsePrecompiled: 如编译目标传递-useprecompiled参数,则为true。
$ bIncludeEngineSource: 如在已生成解决方案中包含引擎源,则为true。
$ bIncludeEnterpriseSource: 是否在已生成解决方案中包含企业源。
$ bIncludeShaderSource: 如在生已成项目中包含着色器源文件,则为true。
$ bIncludeConfigFiles: 如在已生成项目中包含配置(.ini)文件,则为true。
$ bIncludeTemplateFiles: 如在已生成项目中包含模板文件,则为true。
$ IncludeEnginePrograms: 如在已生成解决方案中包含程序项目,则为true。
$ MasterProjectName: 主项目文件命名——如Visual Studio解决方案文件的基本文件名,或Mac上的Xcode项目文件。
$ bMasterProjectNameFromFolder: 如为true,则根据主项目所在文件夹的命名设置主项目的命名。
CMakefile生成器
$ bIncludeDocumentation: 如在已生成项目中包含文档,则为true。
$ bUsePrecompiled: 如编译目标传递-useprecompiled参数,则为true。
$ bIncludeEngineSource: 如在已生成解决方案中包含引擎源,则为true。
$ bIncludeEnterpriseSource: 是否在已生成解决方案中包含企业源。
$ bIncludeShaderSource: 如在生已成项目中包含着色器源文件,则为true。
$ bIncludeConfigFiles: 如在已生成项目中包含配置(.ini)文件,则为true。
$ bIncludeTemplateFiles: 如在已生成项目中包含模板文件,则为true。
$ IncludeEnginePrograms: 如在已生成解决方案中包含程序项目,则为true。
$ MasterProjectName: 主项目文件命名——如Visual Studio解决方案文件的基本文件名,或Mac上的Xcode项目文件。
$ bMasterProjectNameFromFolder: 如为true,则根据主项目所在文件夹的命名设置主项目的命名。
CodeLite生成器
$ bIncludeDocumentation: 如在已生成项目中包含文档,则为true。
$ bUsePrecompiled: 如编译目标传递-useprecompiled参数,则为true。
$ bIncludeEngineSource: 如在已生成解决方案中包含引擎源,则为true。
$ bIncludeEnterpriseSource: 是否在已生成解决方案中包含企业源。
$ bIncludeShaderSource: 如在生已成项目中包含着色器源文件,则为true。
$ bIncludeConfigFiles: 如在已生成项目中包含配置(.ini)文件,则为true。
$ bIncludeTemplateFiles: 如在已生成项目中包含模板文件,则为true。
$ IncludeEnginePrograms: 如在已生成解决方案中包含程序项目,则为true。
$ MasterProjectName: 主项目文件命名——如Visual Studio解决方案文件的基本文件名,或Mac上的Xcode项目文件。
$ bMasterProjectNameFromFolder: 如为true,则根据主项目所在文件夹的命名设置主项目的命名。
Eddie项目文件生成器
$ bIncludeDocumentation: 如在已生成项目中包含文档,则为true。
$ bUsePrecompiled: 如编译目标传递-useprecompiled参数,则为true。
$ bIncludeEngineSource: 如在已生成解决方案中包含引擎源,则为true。
$ bIncludeEnterpriseSource: 是否在生成的解决方案中包含企业源代码。
$ bIncludeShaderSource: 如在生已成项目中包含着色器源文件,则为true。
$ bIncludeConfigFiles: 如在已生成项目中包含配置(.ini)文件,则为true。
$ bIncludeTemplateFiles: 如在已生成项目中包含模板文件,则为true。
$ IncludeEnginePrograms: 如在已生成解决方案中包含程序项目,则为true。
$ MasterProjectName: 主项目文件命名——如Visual Studio解决方案文件的基本文件名,或Mac上的Xcode项目文件。
$ bMasterProjectNameFromFolder: 如为true,则根据主项目所在文件夹的命名设置主项目的命名。
KDevelop生成器
$ bIncludeDocumentation: 如在已生成项目中包含文档,则为true。
$ bUsePrecompiled: 如编译目标传递-useprecompiled参数,则为true。
$ bIncludeEngineSource: 如在已生成解决方案中包含引擎源,则为true。
$ bIncludeEnterpriseSource: 是否在已生成解决方案中包含企业源。
$ bIncludeShaderSource: 如在生已成项目中包含着色器源文件,则为true。
$ bIncludeConfigFiles: 如在已生成项目中包含配置(.ini)文件,则为true。
$ bIncludeTemplateFiles: 如在已生成项目中包含模板文件,则为true。
$ IncludeEnginePrograms: 如在已生成解决方案中包含程序项目,则为true。
$ MasterProjectName: 主项目文件命名——如Visual Studio解决方案文件的基本文件名,或Mac上的Xcode项目文件。
$ bMasterProjectNameFromFolder: 如为true,则根据主项目所在文件夹的命名设置主项目的命名。
Makefile生成器
$ bIncludeDocumentation: 如在已生成项目中包含文档,则为true。
$ bUsePrecompiled: 如编译目标传递-useprecompiled参数,则为true。
$ bIncludeEngineSource: 如在已生成解决方案中包含引擎源,则为true。
$ bIncludeEnterpriseSource: 是否在已生成解决方案中包含企业源。
$ bIncludeShaderSource: 如在生已成项目中包含着色器源文件,则为true。
$ bIncludeConfigFiles: 如在已生成项目中包含配置(.ini)文件,则为true。
$ bIncludeTemplateFiles: 如在已生成项目中包含模板文件,则为true。
$ IncludeEnginePrograms: 如在已生成解决方案中包含程序项目,则为true。
$ MasterProjectName: 主项目文件命名——如Visual Studio解决方案文件的基本文件名,或Mac上的Xcode项目文件。
$ bMasterProjectNameFromFolder: 如为true,则根据主项目所在文件夹的命名设置主项目的命名。
QMakefile生成器
$ bIncludeDocumentation: 如在已生成项目中包含文档,则为true。
$ bUsePrecompiled: 如编译目标传递-useprecompiled参数,则为true。
$ bIncludeEngineSource: 如在已生成解决方案中包含引擎源,则为true。
$ bIncludeEnterpriseSource: 是否在已生成解决方案中包含企业源。
$ bIncludeShaderSource: 如在生已成项目中包含着色器源文件,则为true。
$ bIncludeConfigFiles: 如在已生成项目中包含配置(.ini)文件,则为true。
$ bIncludeTemplateFiles: 如在已生成项目中包含模板文件,则为true。
$ IncludeEnginePrograms: 如在已生成解决方案中包含程序项目,则为true。
$ MasterProjectName: 主项目文件命名——如Visual Studio解决方案文件的基本文件名,或Mac上的Xcode项目文件。
$ bMasterProjectNameFromFolder: 如为true,则根据主项目所在文件夹的命名设置主项目的命名。
RiderProjectFileGenerator
$ bIncludeDocumentation : 如在已生成项目中包含文档,则为true。
$ bUsePrecompiled : 如编译目标传递-useprecompiled参数,则为true。
$ bIncludeEngineSource : 如在已生成解决方案中包含引擎源,则为true。
$ bIncludeEnterpriseSource : 是否在已生成解决方案中包含企业源。
$ bIncludeShaderSource : 如在生已成项目中包含着色器源文件,则为true。
$ bIncludeConfigFiles : 如在已生成项目中包含配置(.ini)文件,则为true。
$ bIncludeTemplateFiles : 如在已生成项目中包含模板文件,则为true。
$ IncludeEnginePrograms : 如在已生成解决方案中包含程序项目,则为true。
$ MasterProjectName : 主项目文件命名——如Visual Studio解决方案文件的基本文件名,或Mac上的Xcode项目文件。
$ bMasterProjectNameFromFolder : 如为true,则根据主项目所在文件夹的命名设置主项目的命名。
VSCode项目文件生成器
$ IncludeAllFiles : 已生成的工作区中包含所有文件。
$ bIncludeDocumentation: 如在已生成项目中包含文档,则为true。
$ bUsePrecompiled: 如编译目标传递-useprecompiled参数,则为true。
$ bIncludeEngineSource: 如在已生成解决方案中包含引擎源,则为true。
$ bIncludeEnterpriseSource: 是否在生成的解决方案中包含企业源代码。
$ bIncludeShaderSource: 如在生已成项目中包含着色器源文件,则为true。
$ bIncludeConfigFiles: 如在已生成项目中包含配置(.ini)文件,则为true。
$ bIncludeTemplateFiles: 如在已生成项目中包含模板文件,则为true。
$ IncludeEnginePrograms: 如在已生成解决方案中包含程序项目,则为true。
$ MasterProjectName: 主项目文件命名——如Visual Studio解决方案文件的基本文件名,或Mac上的Xcode项目文件。
$ bMasterProjectNameFromFolder: 如为true,则根据主项目所在文件夹的命名设置主项目的命名。
VC项目文件生成器
$ Version: 用于生成项目文件的Visual Studio版本。
$ MaxSharedIncludePaths : 将最常见的包含路径放在MSBuild项目的IncludePath属性中。这能显著减少Visual Studio的内存占用量(经测量为1.1 GB->500MB),但似乎会导致Visual Assist出现问题。此处的数值指定了包含路径列表的最大长度(KB为单位)。
$ ExcludedIncludePaths : 不应添加到项目包含路径的路径列表(使用分号分割)。可用于省略智能检测(IntelliSense)建议内容中的第三方头文件(例如Third Party/WebRTC),以及减少内存占用。
$ bBuildUBTInDebug : 无论解决方案配置如何,都强制UBT使用调试配置进行构建
$ bBuildLiveCodingConsole: 编译支持实时编码的目标时,是否包含LiveCodingConsole上的依赖性。
$ bIncludeDocumentation: 如在已生成项目中包含文档,则为true。
$ bUsePrecompiled: 如编译目标传递-useprecompiled参数,则为true。
$ bIncludeEngineSource: 如在已生成解决方案中包含引擎源,则为true。
$ bIncludeEnterpriseSource: 是否在已生成解决方案中包含企业源。
$ bIncludeShaderSource: 如在生已成项目中包含着色器源文件,则为true。
$ bIncludeConfigFiles: 如在已生成项目中包含配置(.ini)文件,则为true。
$ bIncludeTemplateFiles: 如在已生成项目中包含模板文件,则为true。
$ IncludeEnginePrograms: 如在已生成解决方案中包含程序项目,则为true。
$ MasterProjectName: 主项目文件命名——如Visual Studio解决方案文件的基本文件名,或Mac上的Xcode项目文件。
$ bMasterProjectNameFromFolder: 如为true,则根据主项目所在文件夹的命名设置主项目的命名。
Xcode项目文件生成器
$ bIncludeDocumentation: 如在已生成项目中包含文档,则为true
$ bUsePrecompiled: 如编译目标传递-useprecompiled参数,则为true。
$ bIncludeEngineSource: 如在已生成解决方案中包含引擎源,则为true。
$ bIncludeEnterpriseSource: 是否在已生成解决方案中包含企业源。
$ bIncludeShaderSource: 如在生已成项目中包含着色器源文件,则为true。
$ bIncludeConfigFiles: 如在已生成项目中包含配置(.ini)文件,则为true。
$ bIncludeTemplateFiles: 如在已生成项目中包含模板文件,则为true。
$ IncludeEnginePrograms: 如在已生成解决方案中包含程序项目,则为true。
$ MasterProjectName: 主项目文件命名——如Visual Studio解决方案文件的基本文件名,或Mac上的Xcode项目文件。
$ bMasterProjectNameFromFolder: 如为true,则根据主项目所在文件夹的命名设置主项目的命名。
ModuleConfiguration
$ DisableUnityBuild : 禁用统一编译的模块列表。
$ EnableOptimizeCode : 启用优化的模块列表。
$ DisableOptimizeCode : 禁用优化的模块列表。
源文件工作集
$ Provider: 设置用于确定工作集的提供程序。
$ RepositoryPath: 设置用于元库的路径。如为相对,则相对于虚幻引擎根目录(即引擎文件夹的上一层文件夹)进行解译。
$ GitPath: 设置用于Git可执行文件的路径。默认为“git”(假定其位于路径之中)。
VCMac项目文件生成器
$ bIncludeDocumentation: 如在已生成项目中包含文档,则为true。
$ bUsePrecompiled: 如编译目标应传递-useprecompiled参数,则为true。
$ bIncludeEngineSource: 如在已生成解决方案中包含引擎源,则为true。
$ bIncludeEnterpriseSource: 是否在已生成解决方案中包含企业源。
$ bIncludeShaderSource: 如在生已成项目中包含着色器源文件,则为true。
$ bIncludeConfigFiles: 如在已生成项目中包含配置(.ini)文件,则为true。
$ bIncludeTemplateFiles: 如在已生成项目中包含模板文件,则为true。
$ IncludeEnginePrograms: 如在已生成解决方案中包含程序项目,则为true。
$ MasterProjectName: 主项目文件命名——如Visual Studio解决方案文件的基本文件名,或Mac上的Xcode项目文件。
$ bMasterProjectNameFromFolder: 如为true,则根据主项目所在文件夹的命名设置主项目的命名。
IOS工具链
$ IOSSDKVersion: 编译时作为目标的iOS SDK版本。
$ BuildIOSVersion: 编译时允许的iOS版本。
$ bUseDangerouslyFastMode: 如设置此属性,除将可执行文件移到Mac上的正确位置之外,将不会执行任何编译后操作。
远程Mac
$ ServerName: 这两个变量将从XmlConfigLoader.Init()中的XML配置文件进行加载
$ UserName: 远程用户名。
$ SshPrivateKey: 设置后将使用此私钥,而不在常规路径(Documents/Unreal Engine/UnrealBuildTool/SSHKeys,Engine/Build/SSHKeys)中查找RemoteToolChainPrivate.key。
$ RsyncAuthentication: 用于Rsync的验证(用于-e rsync标志)。
$ SshAuthentication: 用于SSH的验证(可能类似于RsyncAuthentication)。
HoloLensPlatform
$ Compiler : 用于HoloLens的编译器工具链版本。UBT启动时会将“默认”的值修改为特定版本。
UE编译配置
$ bForceHeaderGeneration: 如为true,则强制重新生成标头。用于编译机。
$ bDoNotBuildUHT: 如为true,则不编译UHT,并假定其已编译。
$ bFailIfGeneratedCodeChanges: 如为true,已生成标头文件过期时将失败。
$ bAllowHotReloadFromIDE: 如允许从IDE热重载,则为true。
$ bForceDebugUnrealHeaderTool: 如为true,将编译和运行UnrealHeaderTool的调试版本,而非开发版本。
Windows平台
$ MaxRootPathLength : 推荐的最长根路径长度。
$ MaxNestedPathLength : 根目录相关路径的最长长度。在Windows平台上用于确保路径可在不同机器间转移。默认关闭。
$ Compiler: Windows平台上使用的编译器工具链的版本。“默认”的值将在UBT启动时更改为特定版本。
$ CompilerVersion: 要使用的特定工具链版本。此可为具体版本号(如“14.13.26128”),或通过“Latest”字符串选择最新的可用版本,或通过“Preview”选择最新的预览版本。如此项可用,将默认使用WindowsPlatform.DefaultToolChainVersion所指工具链版本,否则使用最新版本。
$ WindowsSdkVersion: 要使用的特定Windows SDK版本。这可为具体版本号(例如,“8.1”、“10.0”或“10.0.10150.0”),或通过“Latest”字符串选择最新的可用版本。如此项可用,将默认使用WindowsPlatform.DefaultWindowsSdkVersion所指Windows SDK版本,否则使用最新版本。
$ StaticAnalyzer: 要使用的静态分析器。
$ bStrictConformanceMode: 在VS2017+中启用受限标准一致性模式(/permissive-)。
$ PCHMemoryAllocationFactor: 确定编译器分配到构造预编译标头(/Zm)的内存量。
$ bClangTimeTrace: (实验性)为Clang的命令行附加-ftime-trace参数,以输出一个包含编译时间轴的JSON文件。欲了解更多信息,参见http://aras-p.info/blog/2019/01/16/time-trace-timeline-flame-chart-profiler-for-Clang/。
$ bCompilerTrace: 输出编译时间信息以便分析。
$ bShowIncludes : 打印每个源文件中包含的文件。
Windows目标规则
$ ObjSrcMapFile: 是否导出包含.obj->源文件映射的文件。