The Unreal Integration for Oculus now provides a distributed code compilation solution based on Unreal_FASTBuild, which is an open source build system intended for distributed compilation. The FASTBuild implementation can help you to improve the build times for large code bases by using distributed Windows computers to build project code in parallel. You can use the Oculus integration for FASTBuild to build your projects with either MSVC or Clang.
The Oculus implementation is based on Unreal_FASTBuild, but has been modified to work for newer MSVC toolchains and to support Clang.
FASTBuild relies on a host computer that starts the compilation process and one or more distributed or worker computers to complete the compilation in parallel. With the Oculus solution, Unreal compile actions are processed to determine the correct compiler tool chain to generate for FASTBuild, and to rewrite any command line parameters to match the FASTBuild requirements. Any non-compile actions are run on the local host machine, such as generating pre-compiled headers, linking libraries, or generating final binaries.
FASTBuild doesn’t support multiple outputs so build results are provided after a build has completed in the FASTBuild report file. This means if a build is cancelled or does not complete for some reason, these results are not saved. In addition, FASTBuild provides built-in caching support for code compiles where object files can be retrieved from the cache if all inputs match both full file path and checksum.
There is some overhead to running a FASTBuild compile because of preprocessing to gather input files, so you should not enable it if you do not have at least one remote computer available.
The following steps describe prerequisites and how to set up FASTBuild.
Windows computers accessible via port 31264 on your local network or VPN.
Important: The FASTBuild port should not be exposed on the public internet as anyone can connect to it and run arbitrary commands, which is a potential security risk.
You download and set up FASTBuild by configuring the computers you will use to compile your project.
FASTBUILD_BROKERAGE_PATHto the brokerage location on each computer. For more information, see the e FastBuild Network Distribution documentation.
You should now be able to generate the FASTBuild config file for code compilation, and distribute tasks to remote workers.
Note: UE4 prioritizes IncrediBuild over FASTBuild if both are installed, so you may need to uninstall IncrediBuild for FASTBuild to be used.
If you run into issues, see the Troubleshooting documentation on the FASTBuild site.
You can optionally use FASTBuild Dashboard, another open source project available on GitHub to visualize the builds.