Checking in Unreal Engine source. Also some work on LuprexServer
This commit is contained in:
2
.gitattributes
vendored
2
.gitattributes
vendored
@@ -16,3 +16,5 @@
|
||||
*.sln filter=lfs diff=lfs merge=lfs -text
|
||||
*.uasset filter=lfs diff=lfs merge=lfs -text
|
||||
*.umap filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
|
||||
2
.gitignore
vendored
2
.gitignore
vendored
@@ -6,6 +6,8 @@ Integration.uproject
|
||||
Integration.code-workspace
|
||||
Integration.code-workspace.ubt
|
||||
Makefile
|
||||
UnrealEngine-*-release
|
||||
UnrealEngine
|
||||
|
||||
*~
|
||||
\#*#
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
diff --git a/Engine/Extras/LLDBDataFormatters/UEDataFormatters_2ByteChars.py b/Engine/Extras/LLDBDataFormatters/UEDataFormatters_2ByteChars.py
|
||||
index f56f5ea9cac4..ff1c4030b38f 100644
|
||||
--- a/Engine/Extras/LLDBDataFormatters/UEDataFormatters_2ByteChars.py
|
||||
+++ b/Engine/Extras/LLDBDataFormatters/UEDataFormatters_2ByteChars.py
|
||||
@@ -32,7 +32,7 @@ def UETCharSummaryProvider(valobj,dict):
|
||||
diff -u --recursive UnrealEngine-5.3.1-release/Engine/Extras/LLDBDataFormatters/UEDataFormatters_2ByteChars.py UnrealEngine/Engine/Extras/LLDBDataFormatters/UEDataFormatters_2ByteChars.py
|
||||
--- UnrealEngine-5.3.1-release/Engine/Extras/LLDBDataFormatters/UEDataFormatters_2ByteChars.py 2023-09-27 09:48:07.000000000 -0400
|
||||
+++ UnrealEngine/Engine/Extras/LLDBDataFormatters/UEDataFormatters_2ByteChars.py 2025-06-19 17:47:01.619969745 -0400
|
||||
@@ -32,7 +32,7 @@
|
||||
if DataVal == 0:
|
||||
Val = 'NULL'
|
||||
else:
|
||||
@@ -11,7 +10,7 @@ index f56f5ea9cac4..ff1c4030b38f 100644
|
||||
ValRef = valobj.CreateValueFromExpression('string', Expr)
|
||||
Val = ValRef.GetSummary()
|
||||
elif Type.IsReferenceType():
|
||||
@@ -47,6 +47,11 @@ def UETCharSummaryProvider(valobj,dict):
|
||||
@@ -47,6 +47,11 @@
|
||||
Expr = '(char16_t*)(%s)' % valobj.GetAddress()
|
||||
ValRef = valobj.CreateValueFromExpression('string', Expr)
|
||||
Val = ValRef.GetSummary()
|
||||
@@ -23,11 +22,10 @@ index f56f5ea9cac4..ff1c4030b38f 100644
|
||||
return Val
|
||||
|
||||
def UESignedCharSummaryProvider(valobj,dict):
|
||||
diff --git a/Engine/Source/Runtime/ApplicationCore/Private/Linux/LinuxPlatformApplicationMisc.cpp b/Engine/Source/Runtime/ApplicationCore/Private/Linux/LinuxPlatformApplicationMisc.cpp
|
||||
index ca5f4b5fb5ff..a436a624d5b7 100644
|
||||
--- a/Engine/Source/Runtime/ApplicationCore/Private/Linux/LinuxPlatformApplicationMisc.cpp
|
||||
+++ b/Engine/Source/Runtime/ApplicationCore/Private/Linux/LinuxPlatformApplicationMisc.cpp
|
||||
@@ -299,6 +299,9 @@ bool FLinuxPlatformApplicationMisc::InitSDL()
|
||||
diff -u --recursive UnrealEngine-5.3.1-release/Engine/Source/Runtime/ApplicationCore/Private/Linux/LinuxPlatformApplicationMisc.cpp UnrealEngine/Engine/Source/Runtime/ApplicationCore/Private/Linux/LinuxPlatformApplicationMisc.cpp
|
||||
--- UnrealEngine-5.3.1-release/Engine/Source/Runtime/ApplicationCore/Private/Linux/LinuxPlatformApplicationMisc.cpp 2023-09-27 09:48:07.000000000 -0400
|
||||
+++ UnrealEngine/Engine/Source/Runtime/ApplicationCore/Private/Linux/LinuxPlatformApplicationMisc.cpp 2025-06-19 17:47:01.621969761 -0400
|
||||
@@ -299,6 +299,9 @@
|
||||
SDL_SetHint(SDL_HINT_MOUSE_RELATIVE_MODE_SHOW_CURSOR, "1"); // When relative mouse mode is acive, don't hide cursor.
|
||||
SDL_SetHint(SDL_HINT_MOUSE_RELATIVE_MODE_WARP, "0"); // Don't warp the cursor to the center in relative mouse mode.
|
||||
|
||||
@@ -37,11 +35,10 @@ index ca5f4b5fb5ff..a436a624d5b7 100644
|
||||
// If we're rendering offscreen, use the "dummy" SDL video driver
|
||||
if (FParse::Param(FCommandLine::Get(), TEXT("RenderOffScreen")) && !getenv("SDL_VIDEODRIVER"))
|
||||
{
|
||||
diff --git a/Setup.bat b/Setup.bat
|
||||
index 34e1cea1e7d2..16bfbe803ac1 100755
|
||||
--- a/Setup.bat
|
||||
+++ b/Setup.bat
|
||||
@@ -28,7 +28,7 @@ start /wait Engine\Extras\Redist\en-us\UEPrereqSetup_x64.exe /quiet /norestart
|
||||
diff -u --recursive UnrealEngine-5.3.1-release/Setup.bat UnrealEngine/Setup.bat
|
||||
--- UnrealEngine-5.3.1-release/Setup.bat 2023-09-27 09:48:07.000000000 -0400
|
||||
+++ UnrealEngine/Setup.bat 2025-06-19 17:50:32.284629525 -0400
|
||||
@@ -28,7 +28,7 @@
|
||||
|
||||
rem Register the engine installation...
|
||||
if not exist .\Engine\Binaries\Win64\UnrealVersionSelector-Win64-Shipping.exe goto :no_unreal_version_selector
|
||||
@@ -50,11 +47,10 @@ index 34e1cea1e7d2..16bfbe803ac1 100755
|
||||
:no_unreal_version_selector
|
||||
|
||||
rem Done!
|
||||
diff --git a/Setup.sh b/Setup.sh
|
||||
index f91a96aaac6b..12897001c96b 100755
|
||||
--- a/Setup.sh
|
||||
+++ b/Setup.sh
|
||||
@@ -80,7 +80,7 @@ else
|
||||
diff -u --recursive UnrealEngine-5.3.1-release/Setup.sh UnrealEngine/Setup.sh
|
||||
--- UnrealEngine-5.3.1-release/Setup.sh 2023-09-27 09:48:07.000000000 -0400
|
||||
+++ UnrealEngine/Setup.sh 2025-06-19 17:47:01.621969761 -0400
|
||||
@@ -80,7 +80,7 @@
|
||||
echo Register the engine installation...
|
||||
if [ -f Engine/Binaries/Linux/UnrealVersionSelector-Linux-Shipping ]; then
|
||||
pushd Engine/Binaries/Linux > /dev/null
|
||||
|
||||
@@ -86,7 +86,7 @@
|
||||
"configurations": {
|
||||
"for-each": [
|
||||
{ "SERVER" : "Standalone" },
|
||||
{ "SERVER" : "192.168.0.100" }
|
||||
{ "SERVER" : "LocalHost" }
|
||||
],
|
||||
"body": {
|
||||
"name": "Server=[SERVER]",
|
||||
|
||||
@@ -36,10 +36,6 @@ ALuprexGameModeBase::ALuprexGameModeBase()
|
||||
ResetToInitialState();
|
||||
OnWorldPreActorTickHandle = FWorldDelegates::OnWorldPreActorTick.AddUObject(this, &ALuprexGameModeBase::OnWorldPreActorTick);
|
||||
OnWorldPostActorTickHandle = FWorldDelegates::OnWorldPostActorTick.AddUObject(this, &ALuprexGameModeBase::OnWorldPostActorTick);
|
||||
|
||||
FString LuprexServer;
|
||||
FParse::Value(FCommandLine::Get(), TEXT("-LuprexServer="), LuprexServer);
|
||||
UE_LOG(LogTemp, Display, TEXT("LuprexServer = %s"), *LuprexServer)
|
||||
}
|
||||
|
||||
ALuprexGameModeBase::~ALuprexGameModeBase()
|
||||
@@ -317,6 +313,19 @@ void ALuprexGameModeBase::InitializeGlobalState()
|
||||
}
|
||||
}
|
||||
|
||||
// Possibly tell the engine to connect to a server.
|
||||
if (Playing) {
|
||||
FString LuprexServer;
|
||||
FParse::Value(FCommandLine::Get(), TEXT("-LuprexServer="), LuprexServer);
|
||||
LuprexServer = LuprexServer.ToLower();
|
||||
UE_LOG(LogTemp, Display, TEXT("LuprexServer = %s"), *LuprexServer)
|
||||
if (LuprexServer != TEXT("standalone"))
|
||||
{
|
||||
FTCHARToUTF8 utf8server(LuprexServer);
|
||||
w->play_access(w.Get(), AccessKind::CONNECT_TO_SERVER, 0, utf8server.Length(), utf8server.Get(), nullptr, nullptr);
|
||||
}
|
||||
}
|
||||
|
||||
// If we successfully created a luprex engine, create a socket system and a worker thread.
|
||||
if (Playing) {
|
||||
Sockets.Reset(FlxSockets::Create(w));
|
||||
|
||||
BIN
UnrealEngine.zip
LFS
Normal file
BIN
UnrealEngine.zip
LFS
Normal file
Binary file not shown.
43
build.py
43
build.py
@@ -10,7 +10,8 @@
|
||||
#
|
||||
|
||||
|
||||
import sys, os, json, shutil, subprocess, re, time, tarfile, itertools, hashlib
|
||||
import sys, os, json, shutil, subprocess, re, time, tarfile
|
||||
import itertools, hashlib, zipfile, fnmatch
|
||||
from pathlib import Path
|
||||
from types import SimpleNamespace
|
||||
|
||||
@@ -113,6 +114,12 @@ def autodetect_system_config():
|
||||
configuration settings. We haven't tested the Windows version.
|
||||
"""
|
||||
config = SimpleNamespace()
|
||||
# Make sure we're actually inside an integration repository.
|
||||
config.INTEGRATION = os.path.dirname(os.path.abspath(sys.argv[0]))
|
||||
if not Path(f"{config.INTEGRATION}/Source/Integration").is_dir():
|
||||
sys.exit(f"Integration repository is not valid: {config.INTEGRATION}")
|
||||
config.UNREALENGINE = os.path.join(config.INTEGRATION, "UnrealEngine")
|
||||
# Configure other parameters.
|
||||
if sys.platform == "windows":
|
||||
config.OS = "Windows"
|
||||
config.DLL = "dll"
|
||||
@@ -127,12 +134,6 @@ def autodetect_system_config():
|
||||
config.DOT_EXE = ""
|
||||
config.USER = os.environ["USER"]
|
||||
config.BUILD_BAT = "Linux/Build.sh"
|
||||
config.INTEGRATION = os.path.dirname(os.path.abspath(sys.argv[0]))
|
||||
config.UNREALENGINE = os.path.join(os.path.dirname(config.INTEGRATION), "UnrealEngine")
|
||||
test1 = Path(f"{config.INTEGRATION}/Source/Integration")
|
||||
test2 = Path(f"{config.UNREALENGINE}/Engine/Source/Editor")
|
||||
if not test1.is_dir(): sys.exit(f"Integration repository is not valid: {config.INTEGRATION}")
|
||||
if not test2.is_dir(): sys.exit(f"UnrealEngine repository is not valid: {config.UNREALENGINE}")
|
||||
return config
|
||||
|
||||
|
||||
@@ -154,21 +155,21 @@ def store_system_config_in_globals(config):
|
||||
# The actual build steps.
|
||||
#
|
||||
|
||||
def checkout_correct_unreal_engine_branch_and_apply_patch():
|
||||
def unzip_unreal_engine_and_apply_patch():
|
||||
"""
|
||||
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.
|
||||
Unzip the unreal engine source, then apply a patch.
|
||||
"""
|
||||
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")
|
||||
# Find out the unreal version that we're using
|
||||
if not Path(UNREALENGINE).is_dir():
|
||||
zipfn = f"{INTEGRATION}/UnrealEngine.zip";
|
||||
with zipfile.ZipFile(zipfn, 'r') as z:
|
||||
version = z.namelist()[0].split('/')[0]
|
||||
if not fnmatch.fnmatch(version, 'UnrealEngine-*-release'):
|
||||
sys.exit("UnrealEngine.zip does not contain UnrealEngine-*-release")
|
||||
shell(INTEGRATION, f"rm -rf {version}")
|
||||
shell(INTEGRATION, f"unzip UnrealEngine.zip")
|
||||
shell(INTEGRATION, f"mv {version} UnrealEngine")
|
||||
shell(UNREALENGINE, f"patch -p1 < {INTEGRATION}/EnginePatches/EnginePatch")
|
||||
|
||||
|
||||
def generate_buildconfiguration_xml():
|
||||
@@ -303,7 +304,7 @@ if MODE == "experiment":
|
||||
build_intellisense_database_for_clangd()
|
||||
|
||||
if MODE == "all":
|
||||
checkout_correct_unreal_engine_branch_and_apply_patch()
|
||||
unzip_unreal_engine_and_apply_patch()
|
||||
generate_buildconfiguration_xml()
|
||||
generate_lpx_paths()
|
||||
generate_integration_uproject()
|
||||
|
||||
Reference in New Issue
Block a user