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

67 lines
3.4 KiB
Plaintext

Availability: Docs
Title: Unreal Build System
Crumbs:
Description:Unreal Engine's custom build system for compiling the engine and game projects.
version:4.15
parent:Programming
tags:Programming
tags:Unreal Build System
type:overview
topic-image:Engine/build_topic.png
[TOC (start:1 end:3)]
[REGION:fullwidth]
![Unreal Build System](build.png)
[/REGION]
**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.
[REGION:note]
If you would like to debug UnrealBuildTool or UnrealAutomationTool on Mac OS X, please install [MonoDevelop 4.2.2](http://monodevelop.com/Download) and [Mono 3.2.7](http://www.go-mono.com/mono-downloads/download.html).
[/REGION]
## 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:
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.
1. 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.
[REGION:tip]
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.
[/REGION]
### Setup
%Programming/UnrealBuildSystem/ProjectFileGenerator:topic%
%Programming/Development/BuildingUnrealEngine:topic%
### Configuration
%Programming/UnrealBuildSystem/Configuration:topic%
%Programming/UnrealBuildSystem/TargetFiles:topic%
## Advanced Topics
%Programming/UnrealBuildSystem/IWYUReferenceGuide:topic%
%Programming/BuildTools/AutomationTool/BuildGraph:topic%