xamarin-macios/tools/common/SdkVersions.cs.in

171 строка
7.2 KiB
C#

using System;
#if MTOUCH || MMP || BUNDLER
using Xamarin.Bundler;
using Xamarin.Utils;
#endif
#if MTOUCH
using MonoTouch;
#endif
namespace Xamarin {
static class SdkVersions {
public const string Xcode = "@XCODE_VERSION@";
public const string OSX = "@OSX_SDK_VERSION@";
public const string iOS = "@IOS_SDK_VERSION@";
public const string WatchOS = "@WATCHOS_SDK_VERSION@";
public const string TVOS = "@TVOS_SDK_VERSION@";
public const string MacCatalyst = "@MACCATALYST_SDK_VERSION@";
#if NET
public const string MinOSX = "@DOTNET_MIN_OSX_SDK_VERSION@";
public const string MiniOS = "@DOTNET_MIN_IOS_SDK_VERSION@";
public const string MinWatchOS = "99.99"; // TODO not supported, many changes required to remove it
public const string MinTVOS = "@DOTNET_MIN_TVOS_SDK_VERSION@";
public const string MinMacCatalyst = "@DOTNET_MIN_MACCATALYST_SDK_VERSION@";
#else
public const string MinOSX = "@MIN_OSX_SDK_VERSION@";
public const string MiniOS = "@MIN_IOS_SDK_VERSION@";
public const string MinWatchOS = "@MIN_WATCHOS_SDK_VERSION@";
public const string MinTVOS = "@MIN_TVOS_SDK_VERSION@";
public const string MinMacCatalyst = "@MIN_MACCATALYST_SDK_VERSION@";
#endif
public const string MiniOSSimulator = "@MIN_IOS_SIMULATOR_VERSION@";
public const string MinWatchOSSimulator = "@MIN_WATCHOS_SIMULATOR_VERSION@";
public const string MinWatchOSCompanionSimulator = "@MIN_WATCHOS_COMPANION_SIMULATOR_VERSION@";
public const string MinTVOSSimulator = "@MIN_TVOS_SIMULATOR_VERSION@";
public const string MaxiOSSimulator = "@MAX_IOS_SIMULATOR_VERSION@";
public const string MaxWatchOSSimulator = "@MAX_WATCH_SIMULATOR_VERSION@";
public const string MaxWatchOSCompanionSimulator = "@MAX_IOS_SIMULATOR_VERSION@";
public const string MaxTVOSSimulator = "@MAX_TVOS_SIMULATOR_VERSION@";
public const string MaxiOSDeploymentTarget = "@MAX_IOS_DEPLOYMENT_TARGET@";
public const string MaxWatchDeploymentTarget = "@MAX_WATCH_DEPLOYMENT_TARGET@";
public const string MaxTVOSDeploymentTarget = "@MAX_TVOS_DEPLOYMENT_TARGET@";
public static Version OSXVersion { get { return new Version (OSX); }}
public static Version iOSVersion { get { return new Version (iOS); }}
public static Version WatchOSVersion { get { return new Version (WatchOS); }}
public static Version TVOSVersion { get { return new Version (TVOS); }}
public static Version MacCatalystVersion { get { return new Version (MacCatalyst); }}
public static Version iOSTargetVersion { get { return new Version (MaxiOSDeploymentTarget); }}
public static Version WatchOSTargetVersion { get { return new Version (MaxWatchDeploymentTarget); }}
public static Version TVOSTargetVersion { get { return new Version (MaxTVOSDeploymentTarget); }}
public static Version MinOSXVersion { get { return new Version (MinOSX); }}
public static Version MiniOSVersion { get { return new Version (MiniOS); }}
public static Version MinWatchOSVersion { get { return new Version (MinWatchOS); }}
public static Version MinTVOSVersion { get { return new Version (MinTVOS); }}
public static Version MinMacCatalystVersion { get { return new Version (MinMacCatalyst); }}
public static Version MiniOSSimulatorVersion { get { return new Version (MiniOSSimulator); }}
public static Version MinWatchOSSimulatorVersion { get { return new Version (MinWatchOSSimulator); }}
public static Version MinWatchOSCompanionSimulatorVersion { get { return new Version (MinWatchOSCompanionSimulator); }}
public static Version MinTVOSSimulatorVersion { get { return new Version (MinTVOSSimulator); }}
public static Version MaxiOSSimulatorVersion { get { return new Version (MaxiOSSimulator); }}
public static Version MaxWatchOSSimulatorVersion { get { return new Version (MaxWatchOSSimulator); }}
public static Version MaxWatchOSCompanionSimulatorVersion { get { return new Version (MaxWatchOSCompanionSimulator); }}
public static Version MaxTVOSSimulatorVersion { get { return new Version (MaxTVOSSimulator); }}
public static Version XcodeVersion { get { return new Version (Xcode); }}
#if MTOUCH || MMP || BUNDLER
public static Version GetVersion (Application app)
{
switch (app.Platform) {
case ApplePlatform.MacOSX: return OSXVersion;
case ApplePlatform.iOS: return iOSVersion;
case ApplePlatform.WatchOS: return WatchOSVersion;
case ApplePlatform.TVOS: return TVOSVersion;
case ApplePlatform.MacCatalyst: return MacCatalystVersion;
default:
throw ErrorHelper.CreateError (71, "Unknown platform: {0}. This usually indicates a bug in {1}; please file a bug report at https://github.com/xamarin/xamarin-macios/issues/new with a test case.", app.Platform, app.ProductName);
}
}
public static Version GetTargetVersion (Application app)
{
switch (app.Platform) {
case ApplePlatform.MacOSX: return OSXVersion;
case ApplePlatform.iOS: return iOSTargetVersion;
case ApplePlatform.WatchOS: return WatchOSTargetVersion;
case ApplePlatform.TVOS: return TVOSTargetVersion;
default:
throw ErrorHelper.CreateError (71, "Unknown platform: {0}. This usually indicates a bug in {1}; please file a bug report at https://github.com/xamarin/xamarin-macios/issues/new with a test case.", app.Platform, app.ProductName);
}
}
public static Version GetMinVersion (Application app)
{
switch (app.Platform) {
case ApplePlatform.MacOSX: return MinOSXVersion;
case ApplePlatform.iOS: return MiniOSVersion;
case ApplePlatform.WatchOS: return MinWatchOSVersion;
case ApplePlatform.TVOS: return MinTVOSVersion;
case ApplePlatform.MacCatalyst: return MinMacCatalystVersion;
default:
throw ErrorHelper.CreateError (71, "Unknown platform: {0}. This usually indicates a bug in {1}; please file a bug report at https://github.com/xamarin/xamarin-macios/issues/new with a test case.", app.Platform, app.ProductName);
}
}
#endif
}
sealed class ProductConstants {
public string Version;
public string Revision;
#if BUNDLER
public readonly static ProductConstants iOS = new ProductConstants {
Version = "@IOS_NUGET_VERSION@",
Revision = "@IOS_NUGET_REVISION@",
};
public readonly static ProductConstants tvOS = new ProductConstants {
Version = "@TVOS_NUGET_VERSION@",
Revision = "@TVOS_NUGET_REVISION@",
};
public readonly static ProductConstants watchOS = new ProductConstants {
Version = "@WATCHOS_NUGET_VERSION@",
Revision = "@WATCHOS_NUGET_REVISION@",
};
public readonly static ProductConstants macOS = new ProductConstants {
Version = "@MACOS_NUGET_VERSION@",
Revision = "@MACOS_NUGET_REVISION@",
};
#else
public readonly static ProductConstants iOS = new ProductConstants {
Version = "@IOS_VERSION@",
Revision = "@IOS_REVISION@",
};
public readonly static ProductConstants tvOS = new ProductConstants {
Version = "@TVOS_VERSION@",
Revision = "@TVOS_REVISION@",
};
public readonly static ProductConstants watchOS = new ProductConstants {
Version = "@WATCHOS_VERSION@",
Revision = "@WATCHOS_REVISION@",
};
public readonly static ProductConstants macOS = new ProductConstants {
Version = "@MACOS_VERSION@",
Revision = "@MACOS_REVISION@",
};
#endif
}
#if MMP
static class MonoVersions {
public static string MinimumMono = "@MIN_XM_MONO_VERSION@";
public static Version MinimumMonoVersion { get { return new Version (MinimumMono); }}
}
#endif
}