2using System.Threading.Tasks;
3using Nuke.Cola.Tooling;
6using Nuke.Common.Tooling;
17 private static string? GetEpicToolchainName(
string unrealVersion) => unrealVersion
switch
19 "5.0" =>
"v20_clang-13.0.1-centos7",
20 "5.1" =>
"v20_clang-13.0.1-centos7",
21 "5.2" =>
"v21_clang-15.0.1-centos7",
22 "5.3" =>
"v22_clang-16.0.6-centos7",
23 "5.4" =>
"v22_clang-16.0.6-centos7",
24 "5.5" =>
"v23_clang-18.1.0-rockylinux8",
25 "5.6" =>
"v25_clang-18.1.0-rockylinux8",
26 "5.7" =>
"v26_clang-20.1.8-rockylinux8",
30 public static string? GetEpicToolchainName(
IUnrealBuild build)
35 var epicToolchainName = GetEpicToolchainName(build);
38 Log.Information(
"Setting up Linux toolchain {0} at {1}", epicToolchainName, sdkPath);
39 if (!SelfPlatformSdk.
Exists(build))
41 var url = $
"https://cdn.unrealengine.com/CrossToolchain_Linux/{epicToolchainName}.exe";
42 var installerPath = NukeBuild.TemporaryDirectory /
"LinuxSdkTemp" / (epicToolchainName +
".exe");
44 Log.Debug(
" Downloading from {0} to {1}", url, installerPath);
45 await HttpTasks.HttpDownloadFileAsync(url, installerPath);
47 Log.Debug(
" Because this installer require admin rights we will rather extract its contents with 7zip");
48 SevenZip.Exe($
"x -bso1 -bse1 -bsp1 -o{sdkPath} {installerPath}");
50 Environment.SetEnvironmentVariable(
"LINUX_MULTIARCH_ROOT", sdkPath, EnvironmentVariableTarget.Process);
59 =>
GetSdkPath(build) /
"x86_64-unknown-linux-gnu";
string VersionMinor
Only the Major.Minor version components, with extra information trimmed.
A collection of utilities around basic functions regarding the environment of the Engine we're workin...
static EngineVersion Version(IUnrealBuild build)
Get high-level version of currently used Engine.
Base interface for build components which require an UnrealBuild main class.