From d99aa8ff4a966fa2745a2f35ecc151abceb3d20b Mon Sep 17 00:00:00 2001 From: Ankit Jain Date: Fri, 2 Oct 2009 22:00:39 +0000 Subject: [PATCH] * Project.cs (OS): New. (InitializeProperties): Set 'OS' as a pre-defined property, set to 'Windows_NT', 'Unix' or 'OSX' depending on the platform. svn path=/trunk/mcs/; revision=143314 --- .../Microsoft.Build.BuildEngine/ChangeLog | 6 ++++++ .../Microsoft.Build.BuildEngine/Project.cs | 17 +++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ChangeLog b/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ChangeLog index ff17581c295..1d06008ffd2 100644 --- a/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ChangeLog +++ b/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ChangeLog @@ -1,3 +1,9 @@ +2009-10-03 Ankit Jain + + * Project.cs (OS): New. + (InitializeProperties): Set 'OS' as a pre-defined property, set to + 'Windows_NT', 'Unix' or 'OSX' depending on the platform. + 2009-10-02 Ankit Jain * Expression.cs (Parse): Don't change '/' to '\\', not required. diff --git a/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/Project.cs b/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/Project.cs index a6af58a233b..68c56012a1b 100644 --- a/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/Project.cs +++ b/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/Project.cs @@ -900,6 +900,7 @@ namespace Microsoft.Build.BuildEngine { EvaluatedProperties.AddProperty (new BuildProperty ("MSBuildToolsPath", parentEngine.BinPath, PropertyType.Reserved)); EvaluatedProperties.AddProperty (new BuildProperty ("MSBuildExtensionsPath", ExtensionsPath, PropertyType.Reserved)); EvaluatedProperties.AddProperty (new BuildProperty ("MSBuildProjectDefaultTargets", DefaultTargets, PropertyType.Reserved)); + EvaluatedProperties.AddProperty (new BuildProperty ("OS", OS, PropertyType.Environment)); // FIXME: make some internal method that will work like GetDirectoryName but output String.Empty on null/String.Empty string projectDir; @@ -1277,6 +1278,22 @@ namespace Microsoft.Build.BuildEngine { internal static string XmlNamespace { get { return ns; } } + + static string OS { + get { + PlatformID pid = Environment.OSVersion.Platform; + switch ((int)pid) { + case 128: + case 4: + return "Unix"; + case 6: + return "OSX"; + default: + return "Windows_NT"; + } + } + } + } } -- 2.25.1