Skip to content

Commit acc8306

Browse files
author
Roberto De Ioris
committed
added automated threaded builds
1 parent a613281 commit acc8306

File tree

2 files changed

+33
-8
lines changed

2 files changed

+33
-8
lines changed

Source/UnrealEnginePython/UnrealEnginePython.Build.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,12 @@ public UnrealEnginePython(TargetInfo Target)
215215
Definitions.Add(string.Format("UNREAL_ENGINE_PYTHON_ON_LINUX"));
216216
}
217217

218+
string enableThreads = System.Environment.GetEnvironmentVariable("UEP_ENABLE_THREADS");
219+
if (!string.IsNullOrEmpty(enableThreads)) {
220+
Definitions.Add("UEPY_THREADING");
221+
System.Console.WriteLine("*** Enabled Python Threads support ***");
222+
}
223+
218224
}
219225

220226
private string DiscoverPythonPath(string[] knownPaths)

tools/release_win64.py

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,24 @@
22
import subprocess
33
import sys
44
import time
5+
import shutil
6+
import zipfile
57

68
UE_VERSIONS = ['4.15', '4.16', '4.17']
79
PYTHON_VERSIONS = ["C:/Program Files/Python36", "C:/Program Files/Python35", "C:/Python27"]
810

9-
def msbuild(project, python_version):
11+
RELEASE_DIR = sys.argv[1].rstrip('/')
12+
13+
def zipdir(path, zh):
14+
for root, dirs, files in os.walk(path):
15+
for file in files:
16+
zh.write(os.path.join(root, file))
17+
18+
def msbuild(project, python_version, variant):
1019
base_environ = os.environ
1120
base_environ.update({'PYTHONHOME': python_version})
21+
if variant == 'threaded_':
22+
base_environ.update({'UEP_ENABLE_THREADS': '1'})
1223
vs = '"C:/Program Files (x86)/MSBuild/14.0/Bin/MSBuild.exe"'
1324
process = subprocess.Popen('{0} {1} /t:Rebuild /p:Configuration="Development Editor" /p:Platform=Win64'.format(vs, project), env=base_environ)
1425
while process.poll() is None:
@@ -42,13 +53,21 @@ def git(project):
4253
sln = os.path.join('D:/', project, '{0}.sln'.format(project))
4354
git(project)
4455
for python_version in PYTHON_VERSIONS:
45-
start = time.time()
46-
print('\n\n***** building {0} for {1} *****\n\n'.format(sln, python_version))
47-
sys.stdout.flush()
48-
msbuild(sln, python_version)
49-
commandlet(ue_version, project)
50-
end = time.time()
51-
print('\n\n***** built {0} for {1} in {2} seconds *****\n\n'.format(project, python_version, end-start))
56+
for variant in ('', 'threaded_'):
57+
python_sanitized = os.path.basename(python_version).lower()
58+
start = time.time()
59+
print('\n\n***** building {0} for {1} ({2}) *****\n\n'.format(sln, python_version, variant))
60+
sys.stdout.flush()
61+
msbuild(sln, python_version, variant)
62+
commandlet(ue_version, project)
63+
end = time.time()
64+
for item in ('UE4Editor.modules', 'UE4Editor-UnrealEnginePython.dll', 'UE4Editor-PythonConsole.dll', 'UE4Editor-PythonEditor.dll'):
65+
shutil.copyfile('D:/{0}/Plugins/UnrealEnginePython/Binaries/Win64/{1}'.format(project, item), '{0}/UnrealEnginePython/Binaries/Win64/{1}'.format(RELEASE_DIR, item))
66+
filename = 'UnrealEnginePython_{0}_{1}_{2}_{3}win64.zip'.format(os.path.basename(RELEASE_DIR), ue_version.replace('.','_'), python_sanitized, variant)
67+
zh = zipfile.ZipFile(os.path.join(RELEASE_DIR, filename), 'w', zipfile.ZIP_DEFLATED)
68+
zipdir(os.path.join(RELEASE_DIR, 'UnrealEnginePython'), zh)
69+
zh.close()
70+
print('\n\n***** built {0} for {1} in {2} seconds [{3}]*****\n\n'.format(project, python_version, end-start, filename))
5271

5372
main_end = time.time()
5473
print('release ready after {0} seconds'.format(main_end-main_start))

0 commit comments

Comments
 (0)