Work on documentation for build.py, also add checkout step.

This commit is contained in:
2025-06-11 21:00:55 -04:00
parent af69dbe15d
commit d074d2be05
2 changed files with 55 additions and 54 deletions

View File

@@ -1,17 +1,41 @@
#!/usr/bin/python3
#
# This build script can be run in three modes:
# The one-and-only build script for luprex.
# Do not follow any of the build instructions on the Unreal Engine
# websites! Instead, use these instructions.
#
# build.py all - rebuilds everything
# build.py c++ - works when you've only edited c++ code
# build.py clean - remove some build products
#
# If you clone the UnrealEngine and integration repositories,
# and then run "build.py all", this will build both unreal engine and
# integration. It will also build project files for vscode, an
# intellisense database, and several other things. Once it is done,
# you can start up vscode using 'code Integration.code-workspace'.
# Then, you can run our game in the vscode debugger.
# HOW TO BUILD THE FIRST TIME
#
# First, install the following software:
#
# apt-get install git-lfs
# apt-get install code
# apt-get install dotnet6
# apt-get install clangd-15 or better.
#
# Then, git clone the UnrealEngine and integration repositories:
#
# cd $HOME
# git clone https://github.com/EpicGames/UnrealEngine.git
# git clone https://www.gnaut.com/team/integration.git
#
# It is important that these two repositories be located
# at $HOME/UnrealEngine and $HOME/integration.
#
# Of course, you will have to jump through a bunch of hoops to
# get access to these repositories. See the instructions on the
# unreal engine website.
#
# After cloning the two repositories, change directory into
# the "integration" repository and run "build.py all".
# This will build both unreal engine and integration. It will
# also build project files for vscode, an intellisense database,
# and several other things. Once it is done, everything is built.
# You can start up the debugger.
#
#
# HOW TO REBUILD WHEN YOU'VE EDITED SOMETHING
#
# You can also use "build.py all" to rebuild. This is the preferred
# way to rebuild when you aren't sure what's been edited. However,
@@ -26,12 +50,22 @@
# anything else, you need to use "build.py all" to rebuild.
#
# Editing Lua or Blueprint code doesn't require any kind of rebuild.
#
#
# USING VISUAL STUDIO CODE
#
# We have a "build.py clean", but it hasn't gotten a lot of love.
# I honestly have no idea what it removes and what it doesn't.
# To start up vscode, change directory to the integration repository,
# and run "code Integration.code-workspace". From inside vscode, you can
# use Terminal/Run_Build_Task to run "build.py all" or "build.py c++".
# You can also select Run/Start_Debugging to launch the game.
#
# The first time you launch vscode, you will see a popup about
# recommended extensions. These are actually recommended by this
# script, build.py, so they're actually good recommendations. Install
# them: you will only have to do this once.
#
import sys, os, json, shutil, subprocess, re, time, tarfile, itertools, hashlib
from pathlib import Path
from types import SimpleNamespace
@@ -176,6 +210,13 @@ def store_system_config_in_globals(config):
# The actual build steps.
#
def checkout_correct_unreal_engine_branch():
"""
This is the version of Unreal Engine that we're currently using.
"""
shell(UNREALENGINE, "git checkout 5.3.1-release")
def generate_buildconfiguration_xml():
"""
Generates BuildConfiguration.xml. We actually have two versions of this
@@ -338,6 +379,7 @@ store_system_config_in_globals(CONFIG)
os.chdir(f"{INTEGRATION}/EnginePatches")
if MODE == "all":
checkout_correct_unreal_engine_branch()
generate_buildconfiguration_xml()
generate_lpx_paths()
patch_unrealengine_source_code()