Compiling Unreal Engine from source.
Choose your operating system:
Windows
macOS
Linux
Unreal Build System refers to a collection of tools that automate the process of building Unreal Engine 4 (UE4). At a high level, UnrealBuildTool and UnrealHeaderTool support Unreal Build System. This guide provides and overview of UnrealBuildTool and UnrealHeaderTool, including a brief discussion about UE4's modular architecture. If you want to use this collection of build tools, we've included some guides that will help you set up and configure Unreal Build System for your own projects. Finally, we've included some guides for advanced users, those wanting to learn more about the Include-What-You-Use (IWYU) dependency model and the BuildGraph scripting system.
If you would like to debug UnrealBuildTool or UnrealAutomationTool on Mac OS X, please install MonoDevelop 4.2.2 and Mono 3.2.7 .
UnrealBuildTool
UnrealBuildTool
(UBT) is a custom tool that manages the process of building the UE4 source code across a variety of build configurations. Check out
BuildConfiguration.cs
to explore various
user-configurable build options.
UnrealHeaderTool
UnrealHeaderTool (UHT) is a custom parsing and code-generation tool that supports the UObject system. Code compilation happens in two phases:
-
UHT is invoked, which parses the C++ headers for Unreal-related class metadata and generates custom code to implement the various UObject-related features.
-
The normal C++ compiler is invoked to compile the results.
When compiling, it is possible for either tool to emit errors, so be sure to look carefully.
Modular Architecture
UE4 is split into many modules. Each module has a
.build.cs
file that controls how it is built, including options for defining module dependencies, additional libraries, include paths, etc. By default, these modules are compiled into DLLs and loaded by a single executable. You can choose to build a monolithic executable in the
BuildConfiguration.cs
file.
Using Unreal Build System
Before using Unreal Build System, it is important to understand that the build process executes independently of any project files for the development environment, such as
.sln
or
.vcproj
files (for Visual Studio). These files are useful to have for editing purposes though,
so there is a tool being provided to generate them dynamically (based on the contents of your project directory tree). You can run this tool with the
GenerateProject.bat
file located in your
[Root UE4]
directory.
Running
GenerateProject.bat
from time-to-time will keep your code editor up-to-date with files that are being added to (or being removed) from disk.