UnrealBuildTool (UBT) is a custom tool that manages the process of building Unreal Engine (UE) source code across a variety of build configurations. Read BuildConfiguration.cs to explore various user-configurable build options.
Modular Architecture
UE 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.
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 [Unreal Engine Root Directory].
Note: 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.
Topics
Targets
An overview of UBT Targets, including property descriptions.
Module Properties
An overview of Unreal Build Tool Modules, including property descriptions.
Build Configuration
Configure how the engine is built.
Include What You Use
A brief overview of the code base for Unreal Engine, using an Include-What-You-Use (IWYU) dependency model.
Project Files for IDEs
A guide to automatically generate project files for games and modules in the current workspace.
Versioning of Binaries
Reference for Unreal Engine's BuildID system, which mitigates potential errors that may result from outdated DLL files.
Third-Party Libraries
Integrating third-party libraries into Unreal Engine
Static Code Analysis
Unreal Build Tool supports running a variety of static code analyzers.
Use Clang to Build Microsoft Platforms
Specify Clang options through build configuration, command-line arguments, or engine configuration.