diff --git a/src/Cli/Microsoft.DotNet.Cli.Utils/RuntimeEnvironment.cs b/src/Cli/Microsoft.DotNet.Cli.Utils/RuntimeEnvironment.cs index 9512834ec8d9..46d6dd2186d7 100644 --- a/src/Cli/Microsoft.DotNet.Cli.Utils/RuntimeEnvironment.cs +++ b/src/Cli/Microsoft.DotNet.Cli.Utils/RuntimeEnvironment.cs @@ -11,7 +11,8 @@ internal enum Platform Darwin = 3, FreeBSD = 4, illumos = 5, - Solaris = 6 + Solaris = 6, + Haiku = 7 } internal static class RuntimeEnvironment @@ -45,6 +46,8 @@ private static string GetOSName() return GetDistroId() ?? nameof(Platform.illumos); case Platform.Solaris: return nameof(Platform.Solaris); + case Platform.Haiku: + return nameof(Platform.Haiku); default: return nameof(Platform.Unknown); } @@ -67,6 +70,8 @@ private static string GetOSVersion() // RuntimeInformation.OSDescription example on Solaris 11.3: SunOS 5.11 11.3 // we only need the major version; 11 return RuntimeInformation.OSDescription.Split(' ')[2].Split('.')[0]; + case Platform.Haiku: + return Environment.OSVersion.Version.ToString(1); default: return string.Empty; } @@ -251,6 +256,10 @@ private static Platform DetermineOSPlatform() { return Platform.Solaris; } + if (RuntimeInformation.IsOSPlatform(OSPlatform.Create("HAIKU"))) + { + return Platform.Haiku; + } #endif return Platform.Unknown; diff --git a/src/Layout/redist/PortableRuntimeIdentifierGraph.json b/src/Layout/redist/PortableRuntimeIdentifierGraph.json index 15eaa941d8d6..e72c07d16cc8 100644 --- a/src/Layout/redist/PortableRuntimeIdentifierGraph.json +++ b/src/Layout/redist/PortableRuntimeIdentifierGraph.json @@ -64,6 +64,17 @@ "unix-x64" ] }, + "haiku": { + "#import": [ + "unix" + ] + }, + "haiku-x64": { + "#import": [ + "haiku", + "unix-x64" + ] + }, "illumos": { "#import": [ "unix"