The goal of this project is to provide a set of Bazel rules to build Unreal Engine itself and Unreal Engine projects with Bazel.
I'm making my own game using Unreal. I have a background in Software Engineering/Ops and I found it difficult to navigate all the custom build scripts and tools that Unreal Engine uses. I want it to be easier to build Unreal Engine and Unreal Engine projects in different environments (Linux, Windows, Mac, CI/CD, etc) without having to think about the ins and outs of Unreal Engine's build system.
Bazel is a build system that is designed to be fast, reliable, and reproducible. I know it well enough to be able to map Unreal Engine's build system to it.
Unreal Engine's build system is complex and not well documented (in my opinion). It's difficult to understand how to build Unreal Engine and Unreal Engine projects in different environments.
TODO
- Build Unreal Engine from source in Bazel
- Download a specific commit of Unreal Engine as a bazel repo rule
- Configure Unreal Engine (mimic
Setup.(bat|sh)
functionality)- Download git dependencies
- Unpack git dependencies
- Build a module of Unreal Engine in Bazel
- Build an Unreal module with no dependencies
- Link Unreal Engine modules together
- Build Unreal Editor in Bazel
- Build and Package Unreal Engine projects in Bazel
- Generate BUILD files for Unreal Engine plugins