More work on patch-both-repositories.py
This commit is contained in:
17
README.md
17
README.md
@@ -1,6 +1,10 @@
|
|||||||
|
|
||||||
LINUX INSTRUCTIONS:
|
LINUX INSTRUCTIONS:
|
||||||
|
|
||||||
|
Warnings:
|
||||||
|
- Do NOT follow the installation instructions for Unreal!
|
||||||
|
- Follow these instructions instead.
|
||||||
|
|
||||||
Install important Software
|
Install important Software
|
||||||
- install visual studio code. Usually: apt-get install code
|
- install visual studio code. Usually: apt-get install code
|
||||||
- install dotnet6. Usually: apt-get install dotnet6
|
- install dotnet6. Usually: apt-get install dotnet6
|
||||||
@@ -12,22 +16,15 @@ Git Clone the UnrealEngine repository:
|
|||||||
some other fiddly credential management stuff I don't remember how to do.
|
some other fiddly credential management stuff I don't remember how to do.
|
||||||
- Clone it into your home directory, $HOME/UnrealEngine
|
- Clone it into your home directory, $HOME/UnrealEngine
|
||||||
- Check out the correct version: git checkout 5.3.1-release
|
- Check out the correct version: git checkout 5.3.1-release
|
||||||
- Run Setup.sh or Setup.bat
|
|
||||||
- You do NOT need to run GenerateProjectFiles.sh
|
|
||||||
|
|
||||||
Git Clone the integration Repository
|
Git Clone the integration Repository
|
||||||
- The repository is at https://gnaut.com/jyelon/integration.git
|
- The repository is at https://gnaut.com/jyelon/integration.git
|
||||||
- Clone it into your home directory, $HOME/integration
|
- Clone it into your home directory, $HOME/integration
|
||||||
|
|
||||||
Apply patches:
|
Apply patches and build everything:
|
||||||
- Change directory to $HOME/integration
|
- Change directory to $HOME/integration
|
||||||
- Patch the integration repository: python3 patch-integration.py
|
- python3 build-everything.py
|
||||||
- Patch the UnrealEngine repository: python3 patch-unrealengine.py
|
- Everything is now ready to go.
|
||||||
|
|
||||||
Compile Integration
|
|
||||||
- Change directory to $HOME/integration
|
|
||||||
- make
|
|
||||||
- Note: this will also compile the necessary Unreal Engine libraries.
|
|
||||||
|
|
||||||
Launch Integration in the Debugger
|
Launch Integration in the Debugger
|
||||||
- Change directory to $HOME/integration
|
- Change directory to $HOME/integration
|
||||||
|
|||||||
@@ -21,6 +21,9 @@ UClass *UlxTangibleManager::GetTangibleClass(const FString &name) {
|
|||||||
if (name.IsEmpty()) {
|
if (name.IsEmpty()) {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
if (name == TEXT("unknown")) {
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
FString path(TEXT("/Game/Tangibles/"));
|
FString path(TEXT("/Game/Tangibles/"));
|
||||||
path += name;
|
path += name;
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
# UNREALENGINE/Engine/Source/Runtime/Core/Private/Logging/LogMacros.cpp
|
# UNREALENGINE/Engine/Source/Runtime/Core/Private/Logging/LogMacros.cpp
|
||||||
#
|
#
|
||||||
|
|
||||||
import sys, os, json
|
import sys, os, json, shutil
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -93,14 +93,13 @@ with open("Integration.uproject", "w") as rewritten:
|
|||||||
json.dump(UPROJECT, rewritten, indent=4)
|
json.dump(UPROJECT, rewritten, indent=4)
|
||||||
|
|
||||||
#
|
#
|
||||||
# Write the Makefile
|
# Run Setup.sh in UNREALENGINE
|
||||||
#
|
#
|
||||||
|
|
||||||
writefile("Makefile", f"""
|
os.chdir(UNREALENGINE)
|
||||||
all:
|
print("Running setup.sh...")
|
||||||
(cd luprex ; make)
|
os.system("./Setup.sh")
|
||||||
dotnet {UNREALENGINE}/Engine/Binaries/DotNET/UnrealBuildTool/UnrealBuildTool.dll IntegrationEditor Linux DebugGame -project="{INTEGRATION}/Integration.uproject" -waitmutex
|
os.chdir(INTEGRATION)
|
||||||
""")
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Use UnrealBuildTool to generate a rough draft of Integration.code-workspace.
|
# Use UnrealBuildTool to generate a rough draft of Integration.code-workspace.
|
||||||
@@ -156,7 +155,6 @@ LUPREXBUILDTASK["options"]["cwd"] = f"{INTEGRATION}/luprex"
|
|||||||
LLDBINIT=[
|
LLDBINIT=[
|
||||||
f"command script import {UNREALENGINE}/Engine/Extras/LLDBDataFormatters/UEDataFormatters_2ByteChars.py",
|
f"command script import {UNREALENGINE}/Engine/Extras/LLDBDataFormatters/UEDataFormatters_2ByteChars.py",
|
||||||
'target stop-hook add --one-liner "p ::UngrabAllInputImpl()"',
|
'target stop-hook add --one-liner "p ::UngrabAllInputImpl()"',
|
||||||
"breakpoint set --name UBreakPoint::OnLogError"
|
|
||||||
]
|
]
|
||||||
|
|
||||||
for config in WORKSPACE["launch"]["configurations"]:
|
for config in WORKSPACE["launch"]["configurations"]:
|
||||||
@@ -182,3 +180,30 @@ WORKSPACE["launch"]["configurations"] = [x for x in WORKSPACE["launch"]["configu
|
|||||||
with open("Integration.code-workspace", "w") as rewritten:
|
with open("Integration.code-workspace", "w") as rewritten:
|
||||||
json.dump(WORKSPACE, rewritten, indent=4)
|
json.dump(WORKSPACE, rewritten, indent=4)
|
||||||
|
|
||||||
|
#
|
||||||
|
# Do an initial build of Luprex
|
||||||
|
#
|
||||||
|
|
||||||
|
os.chdir(f"{INTEGRATION}/luprex")
|
||||||
|
print("Building luprex...")
|
||||||
|
os.system("make")
|
||||||
|
os.chdir(INTEGRATION)
|
||||||
|
|
||||||
|
#
|
||||||
|
# Build ShaderCompileWorker
|
||||||
|
#
|
||||||
|
|
||||||
|
os.chdir(UNREALENGINE)
|
||||||
|
print("Building ShaderCompileWorker...")
|
||||||
|
os.system("Engine/Build/BatchFiles/Linux/Build.sh ShaderCompileWorker Linux Shipping -waitmutex")
|
||||||
|
Path("Engine/Binaries/Linux/ShaderCompileWorker").unlink(missing_ok=True)
|
||||||
|
shutil.copyfile("Engine/Binaries/Linux/ShaderCompileWorker-Linux-Shipping", "Engine/Binaries/Linux/ShaderCompileWorker")
|
||||||
|
os.chdir(INTEGRATION)
|
||||||
|
|
||||||
|
#
|
||||||
|
# Build Integration
|
||||||
|
#
|
||||||
|
|
||||||
|
print("Building integration...")
|
||||||
|
os.system(f'dotnet {UNREALENGINE}/Engine/Binaries/DotNET/UnrealBuildTool/UnrealBuildTool.dll IntegrationEditor Linux DebugGame -project="{INTEGRATION}/Integration.uproject" -waitmutex')
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user