diff options
author | Marek Safar <marek.safar@gmail.com> | 2017-11-21 05:32:23 +0300 |
---|---|---|
committer | Alexander Köplinger <alex.koeplinger@outlook.com> | 2017-11-21 05:32:23 +0300 |
commit | 21ba3d0d9dcd3ef61b0b5955fffa0e3285bbb14e (patch) | |
tree | 0fcf8f21a5e4ab11b2ed191346dbfda45e94968f /mcs/class/corlib | |
parent | 3259e04ace67552fc8d63a8f1ddbb830e526f05f (diff) |
[corlib] Move System.Runtime.InteropServices.RuntimeInformation to co… (#6060)
* [corlib] Move System.Runtime.InteropServices.RuntimeInformation to corlib to match .net 4.7.1 api
* Bump API snapshot submodule
Diffstat (limited to 'mcs/class/corlib')
-rw-r--r-- | mcs/class/corlib/Makefile | 3 | ||||
-rw-r--r-- | mcs/class/corlib/System.Runtime.InteropServices.RuntimeInformation/RuntimeInformation.cs | 85 | ||||
-rw-r--r-- | mcs/class/corlib/corefx/SR.cs | 2 | ||||
-rw-r--r-- | mcs/class/corlib/corlib.dll.sources | 5 |
4 files changed, 94 insertions, 1 deletions
diff --git a/mcs/class/corlib/Makefile b/mcs/class/corlib/Makefile index 42c8ab7ff8b..c31adb99769 100644 --- a/mcs/class/corlib/Makefile +++ b/mcs/class/corlib/Makefile @@ -27,7 +27,8 @@ endif RESX_RESOURCE_STRING = \ ../../../external/corert/src/System.Private.CoreLib/src/Resources/Strings.resx \ ../../../external/corefx/src/System.Collections.Concurrent/src/Resources/Strings.resx \ - ../../../external/corefx/src/System.Memory/src/Resources/Strings.resx + ../../../external/corefx/src/System.Memory/src/Resources/Strings.resx \ + ../../../external/corefx/src/System.Runtime.InteropServices.RuntimeInformation/src/Resources/Strings.resx \ LIBRARY_COMPILE = $(BOOT_COMPILE) LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION) diff --git a/mcs/class/corlib/System.Runtime.InteropServices.RuntimeInformation/RuntimeInformation.cs b/mcs/class/corlib/System.Runtime.InteropServices.RuntimeInformation/RuntimeInformation.cs new file mode 100644 index 00000000000..4a515083c48 --- /dev/null +++ b/mcs/class/corlib/System.Runtime.InteropServices.RuntimeInformation/RuntimeInformation.cs @@ -0,0 +1,85 @@ +// +// RuntimeInformation.cs +// +// Author: +// Alexander Köplinger (alexander.koeplinger@xamarin.com) +// +// (C) 2016 Xamarin, Inc. +// + +// +// Permission is hereby granted, free of charge, to any person obtaining +// a copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// + +using System.IO; +using System.Reflection; + +namespace System.Runtime.InteropServices +{ + public static class RuntimeInformation + { + public static string FrameworkDescription { + get { + return "Mono " + Mono.Runtime.GetDisplayName (); + } + } + + public static bool IsOSPlatform (OSPlatform osPlatform) + { + switch (Environment.OSVersion.Platform) { + case PlatformID.Win32NT: + return osPlatform == OSPlatform.Windows; + case PlatformID.Unix: + if (File.Exists ("/usr/lib/libc.dylib")) + return osPlatform == OSPlatform.OSX; + + return osPlatform == OSPlatform.Linux; + default: + return false; + } + } + + public static string OSDescription + { + get + { + return Environment.OSVersion.VersionString; + } + } + + public static Architecture OSArchitecture + { + get + { + // TODO: very barebones implementation, doesn't respect ARM + return Environment.Is64BitOperatingSystem ? Architecture.X64 : Architecture.X86; + } + } + + public static Architecture ProcessArchitecture + { + get + { + // TODO: very barebones implementation, doesn't respect ARM + return Environment.Is64BitProcess ? Architecture.X64 : Architecture.X86; + } + } + } +} diff --git a/mcs/class/corlib/corefx/SR.cs b/mcs/class/corlib/corefx/SR.cs index 0c602b29c08..e8440853154 100644 --- a/mcs/class/corlib/corefx/SR.cs +++ b/mcs/class/corlib/corefx/SR.cs @@ -821,4 +821,6 @@ partial class SR public const string ArrayTypeMustBeExactMatch = "The array type must be exactly {0}."; public const string CannotCallEqualsOnSpan = "Equals() on Span and ReadOnlySpan is not supported. Use operator== instead."; public const string CannotCallGetHashCodeOnSpan = "GetHashCode() on Span and ReadOnlySpan is not supported."; + public const string Argument_EmptyValue = "Value cannot be empty."; + public const string PlatformNotSupported_RuntimeInformation = "RuntimeInformation is not supported for Portable Class Libraries."; } diff --git a/mcs/class/corlib/corlib.dll.sources b/mcs/class/corlib/corlib.dll.sources index c6d48c39413..cebf502d0d2 100644 --- a/mcs/class/corlib/corlib.dll.sources +++ b/mcs/class/corlib/corlib.dll.sources @@ -409,6 +409,9 @@ System.Runtime.InteropServices.WindowsRuntime/DesignerNamespaceResolveEventArgs. System.Runtime.InteropServices.WindowsRuntime/NamespaceResolveEventArgs.cs System.Runtime.InteropServices.WindowsRuntime/UnsafeNativeMethods.cs System.Runtime.InteropServices.WindowsRuntime/WindowsRuntimeMetadata.cs + +System.Runtime.InteropServices.RuntimeInformation/RuntimeInformation.cs + System.Runtime.Remoting/ActivatedClientTypeEntry.cs System.Runtime.Remoting/ActivatedServiceTypeEntry.cs System.Runtime.Remoting/CustomErrorsModes.cs @@ -1684,6 +1687,8 @@ corefx/SR.cs ../../../external/corefx/src/System.Memory/src/System/SpanHelpers.Clear.cs ../../../external/corefx/src/System.Memory/src/System/ThrowHelper.cs +../../../external/corefx/src/System.Runtime.InteropServices.RuntimeInformation/src/System/Runtime/InteropServices/RuntimeInformation/OSPlatform.cs +../../../external/corefx/src/System.Runtime.InteropServices.RuntimeInformation/src/System/Runtime/InteropServices/RuntimeInformation/Architecture.cs System.Security.Cryptography.X509Certificates/X509CertificateImplApple.cs System.Security.Cryptography.X509Certificates/X509Helper.Apple.cs |