diff --git a/README.md b/README.md index e1166ab6..2404b9e8 100644 --- a/README.md +++ b/README.md @@ -1,50 +1,9 @@ LINUX INSTRUCTIONS: -Warnings: - - Do NOT follow the installation instructions for Unreal! - - Follow these instructions instead. +All the important instructions are in 'build.py' -Install important Software - - install git-lfs support. Usually: apt-get install git-lfs - - install visual studio code. Usually: apt-get install code - - install dotnet6. Usually: apt-get install dotnet6 - - install clangd-15. Usually: apt-get install clangd-15 - - install jq. On Linux, this is usually already installed. - - install python3. On Linux, this is usually already installed. -Git Clone the UnrealEngine repository: - - The repository is at https://github.com/EpicGames/UnrealEngine.git - - Cloning the repository requires creating an account and a password and - some other fiddly credential management stuff I don't remember how to do. - - Clone it into your home directory, $HOME/UnrealEngine - - Check out the correct version: git checkout 5.3.1-release - -Git Clone the integration Repository - - The repository is at https://www.gnaut.com/team/integration.git - - Clone it into your home directory, $HOME/integration - -Apply patches and build everything: - - Change directory to $HOME/integration - - python3 build-everything.py - -Launch Integration in the Debugger - - Change directory to $HOME/integration - - Start the IDE: code Integration.code-workspace - - Wait until a popup appears about 'recommended extensions' - - Install the recommended extensions (only have to do this once) - - Click 'Run/Start Debugging' - - Is is preconfigured to launch and debug the unreal editor with the integration code. - -To edit and recompile, from inside the IDE: - - Edit some source files - - Click 'Terminal/Run Task...' - - If you edited the code in 'Source': Click 'IntegrationEditor Linux DebugGame Build' - - If you edited the code in 'Luprex': Click 'build luprex' - - Alternately, you can recompile from the command line by typing 'make' again. - - After recompiling in the IDE, you can go straight back to debugging. - - diff --git a/build.py b/build.py index 2ea245b3..8c6a89e4 100755 --- a/build.py +++ b/build.py @@ -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()