X157 Dev Notes

One simulant attempts to share insight with others.

UE5 BuildConfiguration.xml

You have quite a bit of control over how UnrealBuildTool builds Unreal Engine and its projects.

In the Example BuildConfiguration.xml below, I have configured UnrealBuildTool as follows:

Where to Save Your BuildConfiguration.xml

Store this file locally in your own personal user settings:

Platform File Location
Linux, Mac ~/.config/Unreal Engine/UnrealBuildTool/BuildConfiguration.xml
Windows %APPDATA%\Unreal Engine\UnrealBuildTool\BuildConfiguration.xml

Example BuildConfiguration.xml Content

<?xml version="1.0" encoding="utf-8" ?>
<Configuration xmlns="https://www.unrealengine.com/BuildConfiguration">
    <BuildConfiguration>
        <bUseAdaptiveUnityBuild>true</bUseAdaptiveUnityBuild>
        <bAdaptiveUnityDisablesOptimizations>true</bAdaptiveUnityDisablesOptimizations>
        <bAdaptiveUnityDisablesPCH>true</bAdaptiveUnityDisablesPCH>
    </BuildConfiguration>
    <ParallelExecutor>
        <!-- (reserve some cores for my use during builds) -->
        <!-- 1.09 * 24 = 26.16 of 32 == 6 free logical cores on my 14th gen i9 (24 physical, 32 logical cores) -->
        <ProcessorCountMultiplier>1.09</ProcessorCountMultiplier>
    </ParallelExecutor>
</Configuration>

The settings above mean that all you have to do is check a file out in P4 to disable optimizations and PCH for that file.

This is ideal for debugging and great for iteration and dev in general.

NOTICE: Set your own ProcessorCountMultiplier

The <ProcessorCountMultiplier> set here works for a 14th gen i9. That machine has 24 physical cores, with 32 logical cores due to hyper-threading. With this configuration I’m reserving 6 logical cores to be available for me to barely use Windows while compiling.

You can turn this value up or down based on your own machine specs and how responsive you want your machine to be while you’re building the project.

Lower values mean more cores are reserved for you, and compile times will take longer. Higher values mean your system can be completely consumed by the building process, and essentially unusable by you until it completes.

DO NOT COMMIT THIS TO SOURCE CONTROL

Different people and different types of machines or services require different build settings.

Do not commit BuildConfiguration.xml to source control.

See Also