diff --git a/build.py b/build.py index 8c6a89e4..04d42d6c 100755 --- a/build.py +++ b/build.py @@ -210,11 +210,21 @@ def store_system_config_in_globals(config): # The actual build steps. # -def checkout_correct_unreal_engine_branch(): +def checkout_correct_unreal_engine_branch_and_apply_patch(): """ - This is the version of Unreal Engine that we're currently using. + Check out the correct branch, then apply a patch to the UnrealEngine + source code. Patch application consists of two steps: first, checkout clean, + unpatched versions of the files from git. Then, apply the patch to the clean code. + Note: don't git-commit the patch in UnrealEngine. Instead, + just let this script reapply this patch as necessary. """ - shell(UNREALENGINE, "git checkout 5.3.1-release") + patch = Path(f"{INTEGRATION}/EnginePatches/EnginePatch") + patch_lines = patch.read_text().splitlines() + patched_files = [line[6:] for line in patch_lines if line.startswith("--- a/")] + for file in patched_files: + shell(UNREALENGINE, f"git show HEAD:{file} > {file}") + shell(UNREALENGINE, f"git checkout 5.3.1-release") + shell(UNREALENGINE, f"git apply {INTEGRATION}/EnginePatches/EnginePatch") def generate_buildconfiguration_xml(): @@ -251,24 +261,6 @@ def generate_lpx_paths(): target.write_text(code) -def patch_unrealengine_source_code(): - """ - Apply a patch to the UnrealEngine source code. - I tried to avoid patching Unreal engine, but it turns out there are a - few things that I just couldn't avoid having to fix. - Patch application consists of two steps: first, checkout clean, unpatched - versions of the files from git. Then, apply the patch to the clean code. - Note: don't git-commit the patch in UnrealEngine. Instead, - just let this script reapply this patch as necessary. - """ - patch = Path(f"{INTEGRATION}/EnginePatches/EnginePatch") - patch_lines = patch.read_text().splitlines() - patched_files = [line[6:] for line in patch_lines if line.startswith("--- a/")] - for file in patched_files: - shell(UNREALENGINE, f"git show HEAD:{file} > {file}") - shell(UNREALENGINE, f"git apply {INTEGRATION}/EnginePatches/EnginePatch") - - def generate_integration_uproject(): """ Generate integration.uproject @@ -379,10 +371,9 @@ store_system_config_in_globals(CONFIG) os.chdir(f"{INTEGRATION}/EnginePatches") if MODE == "all": - checkout_correct_unreal_engine_branch() + checkout_correct_unreal_engine_branch_and_apply_patch() generate_buildconfiguration_xml() generate_lpx_paths() - patch_unrealengine_source_code() generate_integration_uproject() run_unrealengine_setup_bat() build_unrealbuildtool()