diff --git a/EnginePatches/PatchedDosFiles b/EnginePatches/PatchedDosFiles new file mode 100644 index 00000000..640c7639 --- /dev/null +++ b/EnginePatches/PatchedDosFiles @@ -0,0 +1 @@ +Setup.bat diff --git a/build.py b/build.py index d4aabf7e..f256c5a0 100755 --- a/build.py +++ b/build.py @@ -96,26 +96,19 @@ def expand_json_file(sourcefile, outputfile, config): # patch, and then convert the appropriate files back. # -def patched_files(patchfn): - patch_lines = Path(patchfn).read_text().splitlines() - file_names = [line[4:].split()[0] for line in patch_lines if line.startswith('--- ')] - return [ '/'.join(file.split('/')[1:]) for file in file_names ] - def dos2unix(fn): - before = Path(fn).read_text() - after = before.replace("\r\n", "\n") + before = Path(fn).read_bytes() + after = before.replace(b"\r\n", b"\n") if before != after: - Path(fn).write_text(after) - return True - return False + print("dos2unix ", fn) + Path(fn).write_bytes(after) def unix2dos(fn): - before = Path(fn).read_text() - after = before.replace("\n", "\r\n") + before = Path(fn).read_bytes() + after = before.replace(b"\n", b"\r\n") if before != after: - Path(fn).write_text(after) - return True - return False + print("unix2dos ", fn) + Path(fn).write_bytes(after) # # Given a patch file, generate a list of the files being modified. @@ -203,12 +196,11 @@ def unzip_unreal_engine_and_apply_patch(): shutil.rmtree(unrealversion, ignore_errors=True) shell(INTEGRATION, "unzip UnrealEngine.zip") patchfile = f"{INTEGRATION}/EnginePatches/EnginePatch" + dosfiles = Path(f"{INTEGRATION}/EnginePatches/PatchedDosFiles").read_text().splitlines() dos2unix(patchfile) - rel_files = patched_files(patchfile) - abs_files = [ os.path.join(unrealversion, file) for file in rel_files ] - dos_files = [ file for file in abs_files if dos2unix(file)] + for file in dosfiles: dos2unix(f"{unrealversion}/{file}") shell(unrealversion, f"patch -p1 < {patchfile}") - for file in dos_files: unix2dos(file) + for file in dosfiles: unix2dos(f"{unrealversion}/{file}") Path(unrealversion).rename(UNREALENGINE) def generate_buildconfiguration_xml():