Unreal Build System

Unreal Build System

UnrealBuildTool

UnrealBuildTool (or UBT) is a custom tool that manages the process of building the Unreal Engine 4 (UE4) source code across the numerous possible build configurations. Check out BuildConfiguration.cs to explore various user-configurable build options.

If you would like to debug UnrealBuildTool or UnrealAutomationTool on Mac OS X, you must install MonoDevelop 4.2.2 and Mono 3.2.7 .

UnrealHeaderTool

UnrealHeaderTool (or UHT) is a custom parsing and code-generation tool that supports the UObject system. Code compilation happens in two phases:

  1. UHT is invoked, which parses the C++ headers for Unreal-related class metadata and generates custom code to implement the various UObject-related features.

  2. 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.

Project Files

The build process happens 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 provided tool to generate them dynamically based on the contents of your project directory tree. You can run this tool with the GenerateProjectFiles.bat file located in your root /UE4 directory. It is generally useful to run this batch file from time to time to keep your code editor in sync with code files you have added or removed on disk.

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.