18 private Version GetEngineSemVersion()
20 var buildVersionPath =
EnginePath /
"Engine" /
"Build" /
"Build.version";
21 Assert.FileExists(buildVersionPath, $
"Specified path was not an Unreal Engine instance ({buildVersionPath})");
23 var buildVersion = JObject.Parse(File.ReadAllText(buildVersionPath));
25 buildVersion.GetPropertyValue<
int>(
"MajorVersion"),
26 buildVersion.GetPropertyValue<
int>(
"MinorVersion"),
27 buildVersion.GetPropertyValue<
int>(
"PatchVersion")
45 private Version? _semVersion =
null;
67 private int CompatibilityBaseExponent => SemanticalVersion.Major > 4 ? 32 : 0;
68 private ulong CompatibilityFlag => 1UL << (CompatibilityBaseExponent +
SemanticalVersion.Minor);
83 public override string ToString()
88 public static bool operator >= (
EngineVersion currentVersion, (
int,
int) input)
90 var (major, minor) = input;
91 return currentVersion.SemanticalVersion >=
new Version(major, minor);
94 public static bool operator <= (
EngineVersion currentVersion, (
int,
int) input)
96 var (major, minor) = input;
97 return currentVersion.SemanticalVersion <=
new Version(major, minor);
100 public static bool operator > (
EngineVersion currentVersion, (
int,
int) input)
102 var (major, minor) = input;
103 return currentVersion.SemanticalVersion >
new Version(major, minor);
106 public static bool operator < (
EngineVersion currentVersion, (
int,
int) input)
108 var (major, minor) = input;
109 return currentVersion.SemanticalVersion <
new Version(major, minor);
static AbsolutePath GetEnginePath(string engineAssociation, bool ignoreCache=false)
Get the Unreal Engine path based on an input association text. (version, GUID or absolute path)