UnrealBuildTool主流程-Unreal4源码拆解-UnrealBuildTool功能流程解析

Unreal4源码拆解-UnrealBuildTool功能流程解析-UnrealBuildTool主流程

前置工作

  • 需要下载 Unreal4C++ 源代码
  • 源码目录UnrealEngine\Engine\Source\Programs\UnrealBuildTool
  • 文件为UnrealBuildTool.cs
  • UBT主类所在位置,也是main函数入口

下面以一张图来概括UBT所做的工作

篇幅受限

黄色部分会单独写文章解析

在这里插入图片描述

全局配置参数详解

静态类 UnrealBuilTool 下面的变量,参与第一次参数拆解

变量 LogOutputLevel -Verbose/-VeryVerbose
  • 定义 public LogEventType LogOutputLevel = LogEventType.Log;
  • 对应参数:
    • 碰到"-Verbose", 值变为"Verbose"
    • 碰到"-VeryVerbose", 值变为"VeryVerbose"
  • 含义: Log 输出等级的枚举,默认输出 log 以下的枚举
  • 注意: 这个项其实是在决定是否输入超长LOG
enum LogEventType
{
Fatal = 1,
Error = 2,
Warning = 4,
Console = 8,
Log = 16,//默认输出Log以上的Log
Verbose = 32,//长LOG
VeryVerbose = 64//超长Log
}
变量 LogFileName -log=xxxx
  • 定义 public FileReference LogFileName = null;
  • 对应参数:
    • 碰到"-Log"
  • 用法: -log=路径XXX文件名 -log=…/Hello.txt
  • 含义: Log UBTLOG 是否输出到一个 Log 文件中
变量 bLogTimestamps -Timestamps
  • 定义 public bool bLogTimestamps = false;
  • 对应参数:
    • 碰到"-Timestamps" 值变为True
  • 含义: 是否连时间戳也打印出来
变量 bLogFromMsBuild -FromMsBuild
  • 定义 public bool bLogFromMsBuild = false;
  • 对应参数:
    • 碰到"-FromMsBuild" 值变为True
  • 含义: 是否把 MSBuildLog 也打印到 UBTlog 系统的输出中
变量 bWriteProgressMarkup -Progress
  • 定义 public bool bWriteProgressMarkup = false;
  • 对应参数:
    • 碰到"-Progress" 值变为True
  • 含义: 会打印出当前执行的进程的完成进度
变量 bNoMutex -NoMutex
  • 定义 public bool bNoMutex = false;
  • 对应参数:
    • 碰到"-NoMutex" 值变为True
  • 含义: 目前看到多个UBT或者多线程操作执行部分文件操作,决定是否需要加锁
变量 bWaitMutex -WaitMutex
  • 定义 public bool bWaitMutex = false;
  • 对应参数:
    • 碰到"-WaitMutex" 值变为True
  • 含义: 目前看到多个UBT或者多线程操作执行部分文件操作,是否需要等待其他锁操作执行完
变量 RemoteIni -RemoteIni=xxx
  • 定义 public string RemoteIni = “”;
  • 对应参数:
    • 碰到"-RemoteIni"
  • 用法: -RemoteIni=路径XXX文件名 -RemoteIni=…/config.ini
  • 含义: 路径XXX文件名赋值给变量,构建机等远程编译时候有用
变量 Mode -Clean -ProjectFiles…
  • 定义 public string Mode = null;
  • 对应参数:
    • 碰到"-Clean", 把值替换为"Clean"
    • 碰到"-ProjectFiles", 把值替换为"GenerateProjectFiles"
    • 碰到"-ProjectFileFormat=", 把值替换为"GenerateProjectFiles"
    • 碰到"-Makefile", 把值替换为"GenerateProjectFiles"
    • 碰到"-CMakefile", 把值替换为"GenerateProjectFiles"
    • 碰到"-QMakefile", 把值替换为"GenerateProjectFiles"
    • 碰到"-KDevelopfile", 把值替换为"GenerateProjectFiles"
    • 碰到"-CodeliteFiles", 把值替换为"GenerateProjectFiles"
    • 碰到"-XCodeProjectFiles", 把值替换为"GenerateProjectFiles"
    • 碰到"-EdditProjectFiles", 把值替换为"GenerateProjectFiles"
    • 碰到"-VSCode", 把值替换为"GenerateProjectFiles"
    • 碰到"-VSMac", 把值替换为"GenerateProjectFiles"
    • 碰到"-CLion", 把值替换为"GenerateProjectFiles"
    • 碰到"-Rider", 把值替换为"GenerateProjectFiles"
  • 含义: 默认会通过反射找到BuildMode这个子ToolMode类,默认是这个。可以通过-Clean和其他参数改变
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值