Files
Mitchell Wilson 3f8c52a80a Copying //UE4/Dev-Documentation to Samples-Main (//UE4/Samples-Main)
#rb none

[CL 6955335 by Mitchell Wilson in Main branch]
2019-06-12 12:19:04 -04:00

87 lines
9.0 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
INTSourceChangelist:6142688
Availability: Public
Title: 模块
Description: UBT模块总览包括属性描述。
Version: 4.21
Parent: Programming/BuildTools/UnrealBuildTool
Order: 1
[TOC (start:2 end:4)]
模块是UE4的组成部分。引擎被实现为模块的大集合并且游戏将提供自身的模块来对其进行扩充。每个模块封装一组功能并且可以提供公共接口和编译环境含有宏、包含路径等以供其他模块使用。
模块通过带有.build.cs扩展名的C#源文件声明,并存储在项目的 *Source* 目录下。属于模块的C++源代码存储在.build.cs文件旁或其子目录中。每个.build.cs文件声明一个从ModuleRules基类派生出的类并设置属性控制其从其构造函数进行编译的方式。这些.build.cs文件由虚幻编译工具编译并被构造来确定整体编译环境。
.build.cs文件的典型结构如下。
using UnrealBuildTool;
using System.Collections.Generic;
public class MyModule : ModuleRules
{
public MyModule(ReadOnlyTargetRules Target) : base(Target)
{
// Settings go here
}
}
## 读/写属性
| 属性 | 描述 |
| --- | --- |
| 类型ModuleType | 模块类型 |
| BinariesSubFolder (String) | 在编译DLL时将此模块放入Binaries/PLATFORM文件夹的子文件夹。这只能由通过搜索找到的模块使用例如TargetPlatform或ShaderFormat模块。如果未使用FindModules来跟踪它们便找不到这些模块。 |
| OptimizeCode (CodeOptimization) | 此模块的代码应何时进行优化。 |
| PrivatePCHHeaderFile (String) | 此模块的显式私有PCH。意味着此模块不会使用共享PCH。 |
| SharedPCHHeaderFile (String) | 此模块提供的共享PCH的头文件名称。必须为公共C++头文件的有效相对路径。这应该只为大量其他C++模块包含的头文件进行设置。 |
| ShortName (String) | 指定此模块中间项中间目录和文件的替换名称。在达到路径长度限制时十分实用。 |
| PCHUsagePCHUsageMode | 此模块的预编译标头用法。 |
| bTreatAsEngineModule (Boolean) | 此模块是否应视为引擎模块如使用引擎定义、PCH、用DebugGame配置中启用的优化来编译等等。基于其创建源自的规则程序集来初始化为默认。 |
| bUseBackwardsCompatibleDefaults (Boolean) | 是否对该模块使用向后兼容默认项。默认情况下,引擎模块将始终使用最新的默认设置,而项目模块则不使用(以支持更容易的迁移路径)。 |
| bUseRTTI (Boolean) | 使用运行时类型信息。 |
| bUseAVX (Boolean) | 使用AVX指令。 |
| bEnableBufferSecurityChecks (Boolean) | 启用缓冲安全检查。通常应启用此功能,防止严重的安全风险。 |
| bEnableExceptions (Boolean) | 启用异常处理。 |
| bEnableObjCExceptions (Boolean) | 启用objective C异常处理。 |
| bEnableShadowVariableWarnings (Boolean) | 启用阴影变量的警告。 |
| bEnableUndefinedIdentifierWarnings (Boolean) | 在#if表达式中启用使用未定义辨识符的警告。 |
| bFasterWithoutUnity (Boolean) | 如为true并启用了统一编译则该模块将在没有统一的情况下编译。 |
| MinSourceFilesForUnityBuildOverride (Int32) | 在统一编译之前,此模块中的源文件数量将为该模块激活。如设为-1以外的任意值将覆盖由MinGameModuleSourceFilesForUnityBuild控制的默认设置。 |
| MinFilesUsingPrecompiledHeaderOverride (Int32) | 如未非零则覆盖BuildConfiguration.MinFilesUsingPrecompiledHeader。 |
| bBuildLocallyWithSNDBS (Boolean) | 模块使用#import因此使用SN-DBS编译时必须在本地编译。 |
| IsRedistributableOverride (Nullable<Boolean>) | 此模块的重发布覆盖标签。 |
| bOutputPubliclyDistributable (Boolean) | 此模块的输出是否可以公开发布,即使它在非公开发布的模块上存在代码/依赖性也同样如此CarefullyRedist、NotForLicensees、NoRedist。这应在计划发布二进制文件、而非源代码时使用。 |
| WhitelistRestrictedFolders (List<String>) | 编译此二进制文件时要引用的白名单文件夹列表,但不传播受限的文件夹名称。 |
| bEnforceIWYU (Boolean) | PCHUsage设为ExplicitOrSharedPCH时执行“包含您所使用”规则使用单块标头Engine.h、UnrealEd.h等时则发出警告。并首先检查源文件是否包含匹配的标头。 |
| bAddDefaultIncludePaths (Boolean) | 是否将所有默认包含路径添加到模块中如Source/Classes文件夹、Source/Public下的子文件夹。 |
| bPrecompile (Boolean) | 是否应预编译此模块。默认为目标的bPrecompile标签。清除此标签可防止模块被预编译。 |
| bUsePrecompiled (Boolean) | 此模块是否应使用预编译数据。对于从已安装的程序集创建的模块而言此项始终为true。 |
| PublicIncludePathModuleNames (List<String>) | 拥有头文件的模块名称列表(不需要路径)。我们模块的公共标头需要访问这些头文件,但不需要“导入”或连接。 |
| PublicDependencyModuleNames (List<String>) | 公共依赖性模块名称列表(不需要路径)(自动执行私有/公共包含)。这些是公共源文件所需要的模块。 |
| PrivateIncludePathModuleNames (List<String>) | 拥有头文件的模块名称列表(不需要路径)。我们模块的私有代码文件需要访问这些头文件,但不需要“导入”或连接。 |
| PrivateDependencyModuleNames (List<String>) | 私有依赖性模块命名的列表。这些是我们私有代码所依赖、但公共包含文件中无依赖的模块。 |
| CircularlyReferencedDependentModules (List<String>) | 出于旧有行为的原因,这不应在新代码中使用。这是应视为循环引用的模块依赖性列表。该模块必须已被添加到公共或私有依赖模块列表中。 |
| PublicSystemIncludePaths (List<String>) | 系统/库包含路径的列表——通常用于外部(第三方)模块。这些是在解析标头依赖性时不进行检查的公共稳定头文件目录。 |
| PublicIncludePaths (List<String>) | (当前不需要此设置,因为我们从 'Public' 文件夹中发现了所有文件)所有路径的列表,包括公开给其他模块的文件。 |
| PrivateIncludePaths (List<String>) | 此模块内部包含文件(未公开给其他模块)的所有路径的列表(如果包含到 'Private' 路径,则需至少一个;如要避免相对路径,则需要更多)。 |
| PublicLibraryPaths (List<String>) | 系统/库路径列表(.lib文件目录——通常用于外部第三方模块。 |
| PrivateRuntimeLibraryPaths (List<String>) | 运行时库的搜索路径列表(例如.so文件。 |
| PublicRuntimeLibraryPaths (List<String>) | 运行时库的搜索路径列表(例如.so文件。 |
| PublicAdditionalLibraries (List<String>) | 额外库的列表(.lib文件的名称含扩展名——通常用于外部第三方模块。 |
| PublicFrameworks (List<String>) | XCode框架的列表iOS和MacOS。 |
| PublicWeakFrameworks (List<String>) | 弱框架列表(用于操作系统版本转换)。 |
| PublicAdditionalFrameworks (List<Framework>) | 额外框架列表——通常用于Mac和iOS上的外部第三方模块。 |
| AdditionalBundleResources (List<BundleResource>) | 应复制到Mac或iOS应用程序包中的额外资源的列表。 |
| PublicAdditionalShadowFiles (List<String>) | 用于在远程机如iOS上执行的编译此列表包含额外文件需要复制这些文件应用程序才能成功连接。自动复制源/头文件和PCH。通常这只是预编译第三方库依赖性的列表。 |
| PublicDelayLoadDLLs (List<String>) | 延迟加载DLL列表——通常用于外部第三方模块。 |
| PrivateDefinitions (List<String>) | 此模块的私有编译器定义。 |
| PublicDefinitions (List<String>) | 此模块的公共编译器定义。 |
| DynamicallyLoadedModuleNamesList<String> | 运行时此模块可能需要的额外模块。 |
| RuntimeDependencies (RuntimeDependencyList) | 此模块在运行时所依赖文件的列表。这些文件将与目标一同暂存。 |
| AdditionalPropertiesForReceipt (ReceiptPropertyList) | 添加到编译收据中的额外属性的列表。 |
| PrecompileForTargets (PrecompileTargetsType) | 此模块将针对哪些目标进行预编译 |
| ExternalDependencies (List<String>) | 修改后使makefile无效的第三方文件。相对路径相对于.build.cs文件进行解析。 |
| bRequiresImplementModule (Nullable<Boolean>) | 此模块是否需要实现IMPLEMENT\_MODULE宏。大多数UE4模块都需要因为我们使用IMPLEMENT\_MODULE宏来执行其他全局重载如运算符新建/删除前进到GMalloc。 |
| bLegacyPublicIncludePaths (Nullable<Boolean>) | 此模块是否能使来自自其他模块的标头相对于其 'Public' 文件夹的根。这减少了必须传递给编译器的搜索路径的数量,提高了性能并减少了编译器命令行的长度。 |
| CppStandard (CppStandardVersion) | 用于编译此模块的标准。 |