Files
UnrealEngineUWP/Engine/Source/Programs/UnrealBuildTool/Platform/Windows/MicrosoftPlatformSDK.Versions.cs
josh adams 305c260069 - Moved SDK versions (MainVersion and Min/Max SDK version) from C# strings to SDK.json files in the Platform's Config folder
- Allow for per-project override in a project's platform's config folder (this is merging with my other work on per-project SDKs and validation of multi-target builds)
- More versions will move over after this
#rb david.harvey

[CL 26150552 by josh adams in ue5-main branch]
2023-06-21 11:21:01 -04:00

84 lines
3.5 KiB
C#

// Copyright Epic Games, Inc. All Rights Reserved.
using System.Linq;
using EpicGames.Core;
namespace UnrealBuildTool
{
/////////////////////////////////////////////////////////////////////////////////////
// If you are looking for any version numbers not listed here, see Windows_SDK.json
/////////////////////////////////////////////////////////////////////////////////////
partial class MicrosoftPlatformSDK : UEBuildPlatformSDK
{
/// <summary>
/// The minimum Windows SDK version to be used. If this is null then it means there is no minimum version
/// </summary>
static readonly VersionNumber? MinimumWindowsSDKVersion = new VersionNumber(10, 0, 18362, 0);
/// <summary>
/// The maximum Windows SDK version to be used. If this is null then it means "Latest"
/// </summary>
static readonly VersionNumber? MaximumWindowsSDKVersion = null;
/// <summary>
/// The default compiler version to be used, if installed.
/// </summary>
static readonly VersionNumberRange[] PreferredClangVersions =
{
VersionNumberRange.Parse("15.0.0", "15.999"), // VS2022 17.5.x runtime requires Clang 15
VersionNumberRange.Parse("14.0.0", "14.999"), // VS2022 17.4.x runtime requires Clang 14
VersionNumberRange.Parse("13.0.0", "13.999"), // VS2019 16.11 runtime requires Clang 13
};
static readonly VersionNumber MinimumClangVersion = new VersionNumber(13, 0, 0);
/// <summary>
/// Ranges of tested compiler toolchains to be used, in order of preference. If multiple toolchains in a range are present, the latest version will be preferred.
/// Note that the numbers here correspond to the installation *folders* rather than precise executable versions.
/// </summary>
static readonly VersionNumberRange[] PreferredVisualCppVersions = new VersionNumberRange[]
{
VersionNumberRange.Parse("14.36.32532", "14.36.99999"), // VS2022 17.6.x
VersionNumberRange.Parse("14.35.32215", "14.35.99999"), // VS2022 17.5.x
VersionNumberRange.Parse("14.34.31933", "14.34.99999"), // VS2022 17.4.x
VersionNumberRange.Parse("14.29.30133", "14.29.99999"), // VS2019 16.11.x
};
/// <summary>
/// Tested compiler toolchains that should not be allowed.
/// </summary>
static readonly VersionNumberRange[] BannedVisualCppVersions = new VersionNumberRange[]
{
VersionNumberRange.Parse("14.30.0", "14.33.99999"), // VS2022 17.0.x - 17.3.x
};
static readonly VersionNumber MinimumVisualCppVersion = new VersionNumber(14, 29, 30133);
/// <summary>
/// The default compiler version to be used, if installed.
/// https://www.intel.com/content/www/us/en/developer/articles/tool/oneapi-standalone-components.html#dpcpp-cpp
/// </summary>
static readonly VersionNumberRange[] PreferredIntelOneApiVersions =
{
VersionNumberRange.Parse("2023.1.0", "2023.9999"),
};
static readonly VersionNumber MinimumIntelOneApiVersion = new VersionNumber(2023, 0, 0);
/// <inheritdoc/>
protected override void GetValidSoftwareVersionRange(out string? MinVersion, out string? MaxVersion)
{
MinVersion = MinimumWindowsSDKVersion?.ToString();
MaxVersion = MaximumWindowsSDKVersion?.ToString();
}
/// <summary>
/// Whether toolchain errors should be ignored. Enable to ignore banned toolchains when generating projects,
/// as components such as the recommended toolchain can be installed by opening the generated solution via the .vsconfig file.
/// If enabled the error will be downgraded to a warning.
/// </summary>
public static bool IgnoreToolchainErrors = false;
}
}