Sophie

Sophie

distrib > Mageia > 5 > x86_64 > by-pkgid > 3897360924d117459f4d4a8143b2c055 > files > 1

nant-0.92-6.mga5.src.rpm

From af02a0d9b309e982052c21137b174d00c5b6d3b3 Mon Sep 17 00:00:00 2001
From: Ryan Boggs <rmboggs@gmail.com>
Date: Sat, 23 Mar 2013 19:58:42 -0700
Subject: [PATCH 1/7] Modified App.config and CscTask to handle the recent
 changes to Mono's compiler model.

---
 src/NAnt.Console/App.config      | 96 ++++++++++++++++++++++++++++++++++++----
 src/NAnt.DotNet/Tasks/CscTask.cs | 22 +++++++++
 2 files changed, 110 insertions(+), 8 deletions(-)

diff --git a/src/NAnt.Console/App.config b/src/NAnt.Console/App.config
index a3dc8ec..5509d59 100644
--- a/src/NAnt.Console/App.config
+++ b/src/NAnt.Console/App.config
@@ -1724,6 +1724,7 @@
                     </task-assemblies>
                     <tool-paths>
                         <directory name="${toolDirectory}" />
+                        <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/4.5')}" />
                         <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/1.0')}" />
                         <!-- for compatibility with Mono 1.0.x -->
                         <directory name="${frameworkAssemblyDirectory}" />
@@ -1782,6 +1783,14 @@
                         <if test="${version::parse(mono.version) >= version::parse('1.2.3.50')}">
                             <property name="resgen.supportsexternalfilereferences" value="true" />
                         </if>
+                        <if test="${version::parse(mono.version) &lt; version::parse('3.0')}">
+                            <property name="csc.tool" value="gmcs"/>
+                            <property name="mcs.sdk" value="0"/>
+                        </if>
+                        <if test="${version::parse(mono.version) >= version::parse('3.0')">
+                            <property name="csc.tool" value="mcs"/>
+                            <property name="mcs.sdk" value="2"/>
+                        </if>
 
                         <target name="configure-from-pkg-config">
                             <property name="mono.version" value="${pkg-config::get-mod-version('mono')}" />
@@ -1820,7 +1829,8 @@
                             <attribute name="managed">true</attribute>
                         </task>
                         <task name="csc">
-                            <attribute name="exename">gmcs</attribute>
+                            <attribute name="exename">${csc.tool}</attribute>
+                            <attribute name="mcssdk">${mcs.sdk}</attribute>
                             <attribute name="managed">true</attribute>
                             <attribute name="supportspackagereferences">true</attribute>
                             <attribute name="supportsnowarnlist">true</attribute>
@@ -1912,6 +1922,7 @@
                     </task-assemblies>
                     <tool-paths>
                         <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/3.5')}" />
+                        <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/4.5')}" />
                         <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/2.0')}" />
                         <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/1.0')}" />
                         <!-- unmanaged tools -->
@@ -1934,6 +1945,14 @@
 
                         <property name="toolDirectory" value="${path::combine(frameworkAssemblyDirectory, 'mono/3.5')}" />
                         <property name="runtimeEngine" value="${path::combine(sdkInstallRoot, 'bin/mono.exe')}" />
+                        <if test="${version::parse(mono.version) &lt; version::parse('3.0')}">
+                            <property name="csc.tool" value="gmcs"/>
+                            <property name="mcs.sdk" value="0"/>
+                        </if>
+                        <if test="${version::parse(mono.version) >= version::parse('3.0')">
+                            <property name="csc.tool" value="mcs"/>
+                            <property name="mcs.sdk" value="2"/>
+                        </if>
 
                         <target name="configure-from-pkg-config">
                             <property name="mono.version" value="${pkg-config::get-mod-version('mono')}" />
@@ -1972,7 +1991,8 @@
                             <attribute name="managed">true</attribute>
                         </task>
                         <task name="csc">
-                            <attribute name="exename">gmcs</attribute>
+                            <attribute name="exename">${csc.tool}</attribute>
+                            <attribute name="mcssdk">${mcs.sdk}</attribute>
                             <attribute name="managed">true</attribute>
                             <attribute name="langversion">linq</attribute>
                             <attribute name="supportspackagereferences">true</attribute>
@@ -2067,6 +2087,7 @@
                     </task-assemblies>
                     <tool-paths>
                         <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/4.0')}" />
+                        <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/4.5')}" />
                         <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/3.5')}" />
                         <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/2.0')}" />
                         <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/1.0')}" />
@@ -2090,6 +2111,14 @@
 
                         <property name="toolDirectory" value="${path::combine(frameworkAssemblyDirectory, 'mono/4.0')}" />
                         <property name="runtimeEngine" value="${path::combine(sdkInstallRoot, 'bin/mono.exe')}" />
+                        <if test="${version::parse(mono.version) &lt; version::parse('3.0')}">
+                            <property name="csc.tool" value="dmcs"/>
+                            <property name="mcs.sdk" value="0"/>
+                        </if>
+                        <if test="${version::parse(mono.version) >= version::parse('3.0')">
+                            <property name="csc.tool" value="mcs"/>
+                            <property name="mcs.sdk" value="4"/>
+                        </if>
 
                         <target name="configure-from-pkg-config">
                             <property name="mono.version" value="${pkg-config::get-mod-version('mono')}" />
@@ -2128,7 +2157,8 @@
                             <attribute name="managed">true</attribute>
                         </task>
                         <task name="csc">
-                            <attribute name="exename">dmcs</attribute>
+                            <attribute name="exename">${csc.tool}</attribute>
+                            <attribute name="mcssdk">${mcs.sdk}</attribute>
                             <attribute name="managed">true</attribute>
                             <attribute name="langversion">linq</attribute>
                             <attribute name="supportspackagereferences">true</attribute>
@@ -2212,6 +2242,7 @@
                     </task-assemblies>
                     <tool-paths>
                         <directory name="${toolDirectory}" />
+                        <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/4.5')}" />
                         <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/2.0')}" />
                         <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/1.0')}" />
                         <!-- unmanaged tools -->
@@ -2234,6 +2265,14 @@
 
                         <property name="toolDirectory" value="${path::combine(frameworkAssemblyDirectory, 'mono/2.1')}" />
                         <property name="runtimeEngine" value="${path::combine(sdkInstallRoot, 'bin/mono.exe')}" />
+                        <if test="${version::parse(mono.version) &lt; version::parse('3.0')}">
+                            <property name="csc.tool" value="smcs"/>
+                            <property name="mcs.sdk" value="0"/>
+                        </if>
+                        <if test="${version::parse(mono.version) >= version::parse('3.0')">
+                            <property name="csc.tool" value="mcs"/>
+                            <property name="mcs.sdk" value="2.1"/>
+                        </if>
 
                         <target name="configure-from-pkg-config">
                             <property name="mono.version" value="${pkg-config::get-mod-version('mono')}" />
@@ -2267,7 +2306,8 @@
                     </project>
                     <tasks>
                         <task name="csc">
-                            <attribute name="exename">smcs</attribute>
+                            <attribute name="exename">${csc.tool}</attribute>
+                            <attribute name="mcssdk">${mcs.sdk}</attribute>
                             <attribute name="managed">true</attribute>
                             <attribute name="supportspackagereferences">true</attribute>
                             <attribute name="supportsnowarnlist">true</attribute>
@@ -2502,6 +2542,7 @@
                     </task-assemblies>
                     <tool-paths>
                         <directory name="${toolDirectory}" />
+                        <directory name="${path::combine(prefix, 'lib/mono/4.5')}" />
                         <directory name="${path::combine(prefix, 'lib/mono/1.0')}" />
                         <!-- unmanaged tools -->
                         <directory name="${prefix}/bin" />
@@ -2526,13 +2567,22 @@
                         <if test="${pkg-config::is-atleast-version('mono', '1.2.3.50')}">
                             <property name="resgen.supportsexternalfilereferences" value="true" />
                         </if>
+                        <if test="${not(pkg-config::is-atleast-version('mono', '3.0'))}">
+                            <property name="csc.tool" value="gmcs"/>
+                            <property name="mcs.sdk" value="0"/>
+                        </if>
+                        <if test="${pkg-config::is-atleast-version('mono', '3.0')}">
+                            <property name="csc.tool" value="mcs"/>
+                            <property name="mcs.sdk" value="2"/>
+                        </if>
                     </project>
                     <tasks>
                         <task name="al">
                             <attribute name="managed">true</attribute>
                         </task>
                         <task name="csc">
-                            <attribute name="exename">gmcs</attribute>
+                            <attribute name="exename">${csc.tool}</attribute>
+                            <attribute name="mcssdk">${mcs.sdk}</attribute>
                             <attribute name="managed">true</attribute>
                             <attribute name="supportspackagereferences">true</attribute>
                             <attribute name="supportsnowarnlist">true</attribute>
@@ -2616,6 +2666,7 @@
                     </task-assemblies>
                     <tool-paths>
                         <directory name="${toolDirectory}" />
+                        <directory name="${path::combine(prefix, 'lib/mono/4.5')}" />
                         <directory name="${path::combine(prefix, 'lib/mono/2.0')}" />
                         <directory name="${path::combine(prefix, 'lib/mono/1.0')}" />
                         <!-- unmanaged tools -->
@@ -2628,13 +2679,22 @@
                         <property name="resgen.supportsexternalfilereferences" value="false" />
                         <property name="prefix" value="${pkg-config::get-variable('mono', 'prefix')}" />
                         <property name="toolDirectory" value="${path::combine(prefix, 'lib/mono/3.5')}" />
+                        <if test="${not(pkg-config::is-atleast-version('mono', '3.0'))}">
+                            <property name="csc.tool" value="gmcs"/>
+                            <property name="mcs.sdk" value="0"/>
+                        </if>
+                        <if test="${pkg-config::is-atleast-version('mono', '3.0')}">
+                            <property name="csc.tool" value="mcs"/>
+                            <property name="mcs.sdk" value="2"/>
+                        </if>
                     </project>
                     <tasks>
                         <task name="al">
                             <attribute name="managed">true</attribute>
                         </task>
                         <task name="csc">
-                            <attribute name="exename">gmcs</attribute>
+                            <attribute name="exename">${csc.tool}</attribute>
+                            <attribute name="mcssdk">${mcs.sdk}</attribute>
                             <attribute name="managed">true</attribute>
                             <attribute name="langversion">linq</attribute>
                             <attribute name="supportspackagereferences">true</attribute>
@@ -2721,6 +2781,7 @@
                     </task-assemblies>
                     <tool-paths>
                         <directory name="${toolDirectory}" />
+                        <directory name="${path::combine(prefix, 'lib/mono/4.5')}" />
                         <directory name="${path::combine(prefix, 'lib/mono/3.5')}" />
                         <directory name="${path::combine(prefix, 'lib/mono/2.0')}" />
                         <directory name="${path::combine(prefix, 'lib/mono/1.0')}" />
@@ -2734,13 +2795,22 @@
                         <property name="resgen.supportsexternalfilereferences" value="false" />
                         <property name="prefix" value="${pkg-config::get-variable('mono', 'prefix')}" />
                         <property name="toolDirectory" value="${path::combine(prefix, 'lib/mono/4.0')}" />
+                        <if test="${not(pkg-config::is-atleast-version('mono', '3.0'))}">
+                            <property name="csc.tool" value="dmcs"/>
+                            <property name="mcs.sdk" value="0"/>
+                        </if>
+                        <if test="${pkg-config::is-atleast-version('mono', '3.0')}">
+                            <property name="csc.tool" value="mcs"/>
+                            <property name="mcs.sdk" value="4"/>
+                        </if>
                     </project>
                     <tasks>
                         <task name="al">
                             <attribute name="managed">true</attribute>
                         </task>
                         <task name="csc">
-                            <attribute name="exename">dmcs</attribute>
+                            <attribute name="exename">${csc.tool}</attribute>
+                            <attribute name="mcssdk">${mcs.sdk}</attribute>
                             <attribute name="managed">true</attribute>
                             <attribute name="langversion">linq</attribute>
                             <attribute name="supportspackagereferences">true</attribute>
@@ -2824,6 +2894,7 @@
                     </task-assemblies>
                     <tool-paths>
                         <directory name="${toolDirectory}" />
+                        <directory name="${path::combine(prefix, 'lib/mono/4.5')}" />
                         <directory name="${path::combine(prefix, 'lib/mono/2.0')}" />
                         <directory name="${path::combine(prefix, 'lib/mono/1.0')}" />
                         <!-- unmanaged tools -->
@@ -2835,10 +2906,19 @@
                         </if>
                         <property name="prefix" value="${pkg-config::get-variable('mono', 'prefix')}" />
                         <property name="toolDirectory" value="${path::combine(prefix, 'lib/mono/2.1')}" />
+                        <if test="${not(pkg-config::is-atleast-version('mono', '3.0'))}">
+                            <property name="csc.tool" value="smcs"/>
+                            <property name="mcs.sdk" value="0"/>
+                        </if>
+                        <if test="${pkg-config::is-atleast-version('mono', '3.0')}">
+                            <property name="csc.tool" value="mcs"/>
+                            <property name="mcs.sdk" value="2.1"/>
+                        </if>
                     </project>
                     <tasks>
                         <task name="csc">
-                            <attribute name="exename">smcs</attribute>
+                            <attribute name="exename">${csc.tool}</attribute>
+                            <attribute name="mcssdk">${mcs.sdk}</attribute>
                             <attribute name="managed">true</attribute>
                             <attribute name="supportspackagereferences">true</attribute>
                             <attribute name="supportsnowarnlist">true</attribute>
diff --git a/src/NAnt.DotNet/Tasks/CscTask.cs b/src/NAnt.DotNet/Tasks/CscTask.cs
index 31b1a0a..11848bb 100644
--- a/src/NAnt.DotNet/Tasks/CscTask.cs
+++ b/src/NAnt.DotNet/Tasks/CscTask.cs
@@ -90,6 +90,7 @@ public class CscTask : CompilerBase {
         private string _langVersion;
 
         // framework configuration settings
+		private double _mcsSdk = 0;
         private bool _supportsDocGeneration = true;
         private bool _supportsPlatform;
         private bool _supportsLangVersion;
@@ -327,6 +328,17 @@ public class CscTask : CompilerBase {
             set { _codepage = StringUtils.ConvertEmptyToNull(value); }
         }
 
+		/// <summary>
+		/// Gets or sets the mcs sdk version to apply to the new mcs compiler
+		/// for Mono 3.0+
+		/// </summary>
+		[FrameworkConfigurable("mcssdk")]
+		public double McsSdk 
+		{
+			get { return _mcsSdk; }
+			set { _mcsSdk = value; }
+		}
+
         /// <summary>
         /// Specifies whether the compiler for the active target framework
         /// supports generation of XML Documentation file. The default is 
@@ -378,6 +390,16 @@ public class CscTask : CompilerBase {
                 WriteOption(writer, "baseaddress", BaseAddress);
             }
 
+			// If mcs is the compiler and the specified McsSdk version is specified, append the new
+			// -sdk: option to the argument list.
+			if (PlatformHelper.IsMono) 
+			{
+				if (ExeName.Equals("mcs", StringComparison.InvariantCultureIgnoreCase) && _mcsSdk > 0) 
+				{
+					WriteOption(writer, "sdk", _mcsSdk.ToString());
+				}
+			}
+
             // XML documentation
             if (DocFile != null) {
                 if (SupportsDocGeneration) {
-- 
1.8.5.1


From 1890c9fe12657356b77e91a011148d3e4e587d98 Mon Sep 17 00:00:00 2001
From: Ryan Boggs <rmboggs@gmail.com>
Date: Sat, 23 Mar 2013 20:04:40 -0700
Subject: [PATCH 2/7] Replaced XslTransform with XslCompiledTransform in
 ConsoleDriver. Set NAnt.NUnit2 and NDoc.Documenter.NAnt assemblies to ignore
 obsolete warnings for the time being until XslTransform can be replaced with
 XslCompiledTransform.

---
 src/NAnt.Core/ConsoleDriver.cs                      | 2 +-
 src/NAnt.NUnit/NAnt.NUnit.build                     | 2 ++
 src/NDoc.Documenter.NAnt/NDoc.Documenter.NAnt.build | 1 +
 3 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/NAnt.Core/ConsoleDriver.cs b/src/NAnt.Core/ConsoleDriver.cs
index 454600c..aabd8a4 100644
--- a/src/NAnt.Core/ConsoleDriver.cs
+++ b/src/NAnt.Core/ConsoleDriver.cs
@@ -318,7 +318,7 @@ public class ConsoleDriver {
             xsltDoc.Load(reader);
             xsltDoc.DocumentElement.SetAttribute("xmlns:nant",buildDoc.DocumentElement.NamespaceURI);
 
-            XslTransform transform = new XslTransform();
+            XslCompiledTransform transform = new XslCompiledTransform();
             transform.Load(xsltDoc);
 
             StringBuilder sb = new StringBuilder();
diff --git a/src/NAnt.NUnit/NAnt.NUnit.build b/src/NAnt.NUnit/NAnt.NUnit.build
index f4aba89..9695e24 100644
--- a/src/NAnt.NUnit/NAnt.NUnit.build
+++ b/src/NAnt.NUnit/NAnt.NUnit.build
@@ -42,6 +42,8 @@
         </csc>
         <csc target="library" define="${current.build.defines}" warnaserror="${build.warnaserror}" debug="${build.debug}" output="${build.dir}/bin/NAnt.NUnit2Tasks.dll" doc="${build.dir}/bin/NAnt.NUnit2Tasks.xml">
             <nowarn>
+                <!-- do not report obsolete warnings until XslCompiledTransform works with NUnit2 output -->
+                <warning number="0612" />
                 <!-- do not report deprecation warnings -->
                 <warning number="0618" />
             </nowarn>
diff --git a/src/NDoc.Documenter.NAnt/NDoc.Documenter.NAnt.build b/src/NDoc.Documenter.NAnt/NDoc.Documenter.NAnt.build
index f7e3055..2de6374 100644
--- a/src/NDoc.Documenter.NAnt/NDoc.Documenter.NAnt.build
+++ b/src/NDoc.Documenter.NAnt/NDoc.Documenter.NAnt.build
@@ -11,6 +11,7 @@
         <!-- build main assembly -->
         <csc target="library" define="${current.build.defines}" warnaserror="${build.warnaserror}" debug="${build.debug}" output="${build.dir}/bin/${project::get-name()}.dll" doc="${build.dir}/bin/${project::get-name()}.xml">
             <nowarn>
+                <warning number="0612" />
                 <warning number="0618" />
                 <warning number="1591" />
                 <warning number="1572" />
-- 
1.8.5.1


From 49af444293708c9c92ee87fc2b77acc20f418c1b Mon Sep 17 00:00:00 2001
From: Ryan Boggs <rmboggs@gmail.com>
Date: Sat, 23 Mar 2013 22:15:04 -0700
Subject: [PATCH 3/7] Updated ConsoleDriver class and ProjectHelp.xslt file to
 account for recent XslTransform -> XslCompiledTransform changes.

---
 src/NAnt.Core/ConsoleDriver.cs           | 3 ++-
 src/NAnt.Core/Resources/ProjectHelp.xslt | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)
 mode change 100644 => 100755 src/NAnt.Core/ConsoleDriver.cs
 mode change 100644 => 100755 src/NAnt.Core/Resources/ProjectHelp.xslt

diff --git a/src/NAnt.Core/ConsoleDriver.cs b/src/NAnt.Core/ConsoleDriver.cs
old mode 100644
new mode 100755
index aabd8a4..2d1a6d9
--- a/src/NAnt.Core/ConsoleDriver.cs
+++ b/src/NAnt.Core/ConsoleDriver.cs
@@ -319,7 +319,8 @@ public class ConsoleDriver {
             xsltDoc.DocumentElement.SetAttribute("xmlns:nant",buildDoc.DocumentElement.NamespaceURI);
 
             XslCompiledTransform transform = new XslCompiledTransform();
-            transform.Load(xsltDoc);
+            XsltSettings settings = new XsltSettings(false, true);
+            transform.Load(xsltDoc, settings, new XmlUrlResolver());
 
             StringBuilder sb = new StringBuilder();
             StringWriter writer = new StringWriter(sb, CultureInfo.InvariantCulture);
diff --git a/src/NAnt.Core/Resources/ProjectHelp.xslt b/src/NAnt.Core/Resources/ProjectHelp.xslt
old mode 100644
new mode 100755
index 04756d9..e180bcd
--- a/src/NAnt.Core/Resources/ProjectHelp.xslt
+++ b/src/NAnt.Core/Resources/ProjectHelp.xslt
@@ -26,7 +26,7 @@
     <xslt:output method="text" />
     <msxsl:script language="C#" implements-prefix="stringutils">
     <![CDATA[
-        string PadRight( string str, int padding) {
+        public string PadRight( string str, int padding) {
             return str.PadRight(padding);
         }
     ]]>
-- 
1.8.5.1


From 22b9bbc82d550937f80c5f22b8ff991a91870e37 Mon Sep 17 00:00:00 2001
From: Ryan Boggs <rmboggs@gmail.com>
Date: Sat, 23 Mar 2013 22:31:32 -0700
Subject: [PATCH 4/7] Sync test Framework.config with recent App.config
 changes.

---
 tests/NAnt.Core/Framework.config | 275 ++++++++++++++++++++++++++++-----------
 1 file changed, 198 insertions(+), 77 deletions(-)
 mode change 100644 => 100755 tests/NAnt.Core/Framework.config

diff --git a/tests/NAnt.Core/Framework.config b/tests/NAnt.Core/Framework.config
old mode 100644
new mode 100755
index 62e64ea..803f0de
--- a/tests/NAnt.Core/Framework.config
+++ b/tests/NAnt.Core/Framework.config
@@ -467,28 +467,6 @@
                         key="SOFTWARE\Microsoft\.NETFramework\InstallRoot"
                         hive="LocalMachine" />
                     <locatesdk property="sdkInstallRoot" minwinsdkver="v6.0A" maxnetfxver="3.5" failonerror="false" />
-                    <!--
-                    <readregistry
-                        property="sdkInstallRoot"
-                        key="SOFTWARE\Microsoft\Microsoft SDKs\Windows\v6.0A\WinSDKNetFxTools\InstallationFolder"
-                        hive="LocalMachine"
-                        failonerror="false" />
-                    <readregistry
-                        property="sdkInstallRoot"
-                        key="SOFTWARE\Microsoft\Microsoft SDKs\Windows\v6.1\InstallationFolder"
-                        hive="LocalMachine"
-                        failonerror="false" />
-                    <readregistry
-                        property="sdkInstallRoot"
-                        key="SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0\InstallationFolder"
-                        hive="LocalMachine"
-                        failonerror="false" />
-                    <readregistry
-                        property="sdkInstallRoot"
-                        key="SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\InstallationFolder"
-                        hive="LocalMachine"
-                        failonerror="false" />
-                    -->
                 </project>
                 <tasks>
                     <task name="csc">
@@ -792,19 +770,6 @@
                         key="SOFTWARE\Microsoft\.NETFramework\InstallRoot"
                         hive="LocalMachine" />
                     <locatesdk property="sdkInstallRoot" minwinsdkver="v7.0A" minnetfxver="4.0" maxnetfxver="4.0.99999" failonerror="false" />
-                    <!--
-                    <echo message="sdkInstallRoot=${sdkInstallRoot}" if="${property::exists('sdkInstallRoot')}" />
-                    <readregistry
-                        property="sdkInstallRoot"
-                        key="SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDK-NetFx40Tools\InstallationFolder"
-                        hive="LocalMachine"
-                        failonerror="false" />
-                    <readregistry
-                        property="sdkInstallRoot"
-                        key="SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDK-NetFx40Tools-x86\InstallationFolder"
-                        hive="LocalMachine"
-                        failonerror="false" />
-                    -->
                 </project>
                 <tasks>
                     <task name="csc">
@@ -1302,9 +1267,12 @@
                 </task-assemblies>
                 <tool-paths>
                     <directory name="${toolDirectory}" />
+                    <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/4.5')}" />
                     <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/1.0')}" />
                     <!-- for compatibility with Mono 1.0.x -->
                     <directory name="${frameworkAssemblyDirectory}" />
+                    <!-- unmanaged tools -->
+                    <directory name="${sdkInstallRoot}/bin" />
                 </tool-paths>
                 <project>
                     <!-- quick and dirty check to see if pkg-config is available (and configured) -->
@@ -1320,26 +1288,30 @@
                     <if test="${not pkgconfig.available}">
                         <call target="configure-from-registry" />
                     </if>
+
                     <property name="resgen.supportsexternalfilereferences" value="false" />
+
                     <!-- determine if we're dealing with a Mono 1.0.x release -->
                     <if test="${version::parse(mono.version) &lt; version::parse('1.1')}">
                         <!-- 
-                                in Mono 1.0.x, the framework tools are located 
-                                in the <install root>\lib directory, except for
-                                mbas and mcs
-                            -->
+                            in Mono 1.0.x, the framework tools are located 
+                            in the <install root>\lib directory, except for
+                            mbas and mcs
+                        -->
                         <property name="toolDirectory" value="${frameworkAssemblyDirectory}" />
                         <property name="runtimeEngine" value="${path::combine(frameworkAssemblyDirectory, 'mono.exe')}" />
                         <property name="resgen.tool" value="monoresgen" />
                         <property name="csc.supportsdocgeneration" value="false" />
+
                         <!-- 
-                                Mono 1.0.1 installer incorrectly adds '\mono' to 
-                                "MonoConfigDir" registry value
-                            -->
+                            Mono 1.0.1 installer incorrectly adds '\mono' to 
+                            "MonoConfigDir" registry value
+                        -->
                         <if test="${string::ends-with(configDir, 'etc\mono')}">
                             <property name="configDir" value="${string::replace(configDir, 'etc\mono', 'etc')}" />
                         </if>
                     </if>
+
                     <!-- determine if we're dealing with a Mono 1.1.x release or higher -->
                     <if test="${version::parse(mono.version) >= version::parse('1.1')}">
                         <property name="toolDirectory" value="${path::combine(frameworkAssemblyDirectory, 'mono/2.0')}" />
@@ -1354,28 +1326,54 @@
                     <if test="${version::parse(mono.version) >= version::parse('1.2.3.50')}">
                         <property name="resgen.supportsexternalfilereferences" value="true" />
                     </if>
+                    <if test="${version::parse(mono.version) &lt; version::parse('3.0')}">
+                        <property name="csc.tool" value="gmcs"/>
+                        <property name="mcs.sdk" value="0"/>
+                    </if>
+                    <if test="${version::parse(mono.version) >= version::parse('3.0')">
+                        <property name="csc.tool" value="mcs"/>
+                        <property name="mcs.sdk" value="2"/>
+                    </if>
+
                     <target name="configure-from-pkg-config">
                         <property name="mono.version" value="${pkg-config::get-mod-version('mono')}" />
                         <property name="sdkInstallRoot" value="${cygpath::get-windows-path(pkg-config::get-variable('mono', 'prefix'))}" />
                         <property name="frameworkAssemblyDirectory" value="${cygpath::get-windows-path(pkg-config::get-variable('mono', 'libdir'))}" />
                         <property name="configDir" value="${path::combine(sdkInstallRoot, 'etc')}/" />
                     </target>
+
                     <target name="configure-from-registry">
-                        <readregistry property="mono.version" key="SOFTWARE\Novell\Mono\DefaultCLR" hive="LocalMachine" />
-                        <property name="monokey" value="SOFTWARE\Novell\Mono\${mono.version}" />
-                        <readregistry property="sdkInstallRoot" key="${monokey}\SdkInstallRoot" hive="LocalMachine" />
-                        <readregistry property="frameworkAssemblyDirectory" key="${monokey}\FrameworkAssemblyDirectory"
+                        <monoregistry property="mono.reg" failonerror="false" />
+                        <readregistry
+                            property="mono.version"
+                            key="${mono.reg}\DefaultCLR"
+                            hive="LocalMachine"
+                        />
+                        <property name="monokey" value="${mono.reg}\${mono.version}" />
+
+                        <readregistry
+                            property="sdkInstallRoot"
+                            key="${monokey}\SdkInstallRoot"
+                            hive="LocalMachine" />
+                        <readregistry
+                            property="frameworkAssemblyDirectory"
+                            key="${monokey}\FrameworkAssemblyDirectory"
+                            hive="LocalMachine" />
+                        <readregistry
+                            property="configDir"
+                            key="${monokey}\MonoConfigDir"
                             hive="LocalMachine" />
-                        <readregistry property="configDir" key="${monokey}\MonoConfigDir" hive="LocalMachine" />
                     </target>
                 </project>
-                <properties></properties>
+                <properties>
+                </properties>
                 <tasks>
                     <task name="al">
                         <attribute name="managed">true</attribute>
                     </task>
                     <task name="csc">
-                        <attribute name="exename">gmcs</attribute>
+                        <attribute name="exename">${csc.tool}</attribute>
+                        <attribute name="mcssdk">${mcs.sdk}</attribute>
                         <attribute name="managed">true</attribute>
                         <attribute name="supportspackagereferences">true</attribute>
                         <attribute name="supportsnowarnlist">true</attribute>
@@ -1467,8 +1465,11 @@
                 </task-assemblies>
                 <tool-paths>
                     <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/3.5')}" />
+                    <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/4.5')}" />
                     <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/2.0')}" />
                     <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/1.0')}" />
+                    <!-- unmanaged tools -->
+                    <directory name="${sdkInstallRoot}/bin" />
                 </tool-paths>
                 <project>
                     <!-- quick and dirty check to see if pkg-config is available (and configured) -->
@@ -1484,30 +1485,57 @@
                     <if test="${not pkgconfig.available}">
                         <call target="configure-from-registry" />
                     </if>
+
                     <property name="toolDirectory" value="${path::combine(frameworkAssemblyDirectory, 'mono/3.5')}" />
                     <property name="runtimeEngine" value="${path::combine(sdkInstallRoot, 'bin/mono.exe')}" />
+                    <if test="${version::parse(mono.version) &lt; version::parse('3.0')}">
+                        <property name="csc.tool" value="gmcs"/>
+                        <property name="mcs.sdk" value="0"/>
+                    </if>
+                    <if test="${version::parse(mono.version) >= version::parse('3.0')">
+                        <property name="csc.tool" value="mcs"/>
+                        <property name="mcs.sdk" value="2"/>
+                    </if>
+
                     <target name="configure-from-pkg-config">
                         <property name="mono.version" value="${pkg-config::get-mod-version('mono')}" />
                         <property name="sdkInstallRoot" value="${cygpath::get-windows-path(pkg-config::get-variable('mono', 'prefix'))}" />
                         <property name="frameworkAssemblyDirectory" value="${cygpath::get-windows-path(pkg-config::get-variable('mono', 'libdir'))}" />
                         <property name="configDir" value="${path::combine(sdkInstallRoot, 'etc')}/" />
                     </target>
+
                     <target name="configure-from-registry">
-                        <readregistry property="mono.version" key="SOFTWARE\Novell\Mono\DefaultCLR" hive="LocalMachine" />
-                        <property name="monokey" value="SOFTWARE\Novell\Mono\${mono.version}" />
-                        <readregistry property="sdkInstallRoot" key="${monokey}\SdkInstallRoot" hive="LocalMachine" />
-                        <readregistry property="frameworkAssemblyDirectory" key="${monokey}\FrameworkAssemblyDirectory"
+                        <monoregistry property="mono.reg" failonerror="false" />
+                        <readregistry
+                            property="mono.version"
+                            key="${mono.reg}\DefaultCLR"
+                            hive="LocalMachine"
+                        />
+                        <property name="monokey" value="${mono.reg}\${mono.version}" />
+                       
+                        <readregistry
+                            property="sdkInstallRoot"
+                            key="${monokey}\SdkInstallRoot"
+                            hive="LocalMachine" />
+                        <readregistry
+                            property="frameworkAssemblyDirectory"
+                            key="${monokey}\FrameworkAssemblyDirectory"
+                            hive="LocalMachine" />
+                        <readregistry
+                            property="configDir"
+                            key="${monokey}\MonoConfigDir"
                             hive="LocalMachine" />
-                        <readregistry property="configDir" key="${monokey}\MonoConfigDir" hive="LocalMachine" />
                     </target>
                 </project>
-                <properties></properties>
+                <properties>
+                </properties>
                 <tasks>
                     <task name="al">
                         <attribute name="managed">true</attribute>
                     </task>
                     <task name="csc">
-                        <attribute name="exename">gmcs</attribute>
+                        <attribute name="exename">${csc.tool}</attribute>
+                        <attribute name="mcssdk">${mcs.sdk}</attribute>
                         <attribute name="managed">true</attribute>
                         <attribute name="langversion">linq</attribute>
                         <attribute name="supportspackagereferences">true</attribute>
@@ -1602,6 +1630,7 @@
                 </task-assemblies>
                 <tool-paths>
                     <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/4.0')}" />
+                    <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/4.5')}" />
                     <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/3.5')}" />
                     <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/2.0')}" />
                     <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/1.0')}" />
@@ -1625,6 +1654,14 @@
 
                     <property name="toolDirectory" value="${path::combine(frameworkAssemblyDirectory, 'mono/4.0')}" />
                     <property name="runtimeEngine" value="${path::combine(sdkInstallRoot, 'bin/mono.exe')}" />
+                    <if test="${version::parse(mono.version) &lt; version::parse('3.0')}">
+                        <property name="csc.tool" value="dmcs"/>
+                        <property name="mcs.sdk" value="0"/>
+                    </if>
+                    <if test="${version::parse(mono.version) >= version::parse('3.0')">
+                        <property name="csc.tool" value="mcs"/>
+                        <property name="mcs.sdk" value="4"/>
+                    </if>
 
                     <target name="configure-from-pkg-config">
                         <property name="mono.version" value="${pkg-config::get-mod-version('mono')}" />
@@ -1663,7 +1700,8 @@
                         <attribute name="managed">true</attribute>
                     </task>
                     <task name="csc">
-                        <attribute name="exename">dmcs</attribute>
+                        <attribute name="exename">${csc.tool}</attribute>
+                        <attribute name="mcssdk">${mcs.sdk}</attribute>
                         <attribute name="managed">true</attribute>
                         <attribute name="langversion">linq</attribute>
                         <attribute name="supportspackagereferences">true</attribute>
@@ -1699,7 +1737,7 @@
                 </tasks>
             </framework>
             <framework
-                name="moonlight-2.0"
+                name="moonlight-2.0" 
                 family="moonlight"
                 version="2.0"
                 description="Moonlight 2.0"
@@ -1720,14 +1758,18 @@
                         </auto>
                     </modes>
                 </runtime>
-                <reference-assemblies basedir="${path::combine(prefix, 'lib/mono/2.1')}">
-                    <include name="agclr.dll" />
+                <reference-assemblies basedir="${path::combine(frameworkAssemblyDirectory, 'lib/mono/2.1')}">
                     <include name="Microsoft.VisualBasic.dll" />
                     <include name="mscorlib.dll" />
                     <include name="System.Core.dll" />
                     <include name="System.dll" />
-                    <include name="System.Silverlight.dll" />
-                    <include name="System.Xml.Core.dll" />
+                    <include name="System.Net.dll" />
+                    <include name="System.Runtime.Serialization.dll" />
+                    <include name="System.ServiceModel.dll" />
+                    <include name="System.ServiceModel.Web.dll" />
+                    <include name="System.Windows.Browser.dll" />
+                    <include name="System.Windows.dll" />
+                    <include name="System.Xml.dll" />
                 </reference-assemblies>
                 <task-assemblies>
                     <!-- include MS.NET version-neutral assemblies -->
@@ -1743,8 +1785,11 @@
                 </task-assemblies>
                 <tool-paths>
                     <directory name="${toolDirectory}" />
+                    <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/4.5')}" />
                     <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/2.0')}" />
                     <directory name="${path::combine(frameworkAssemblyDirectory, 'mono/1.0')}" />
+                    <!-- unmanaged tools -->
+                    <directory name="${sdkInstallRoot}/bin" />
                 </tool-paths>
                 <project>
                     <!-- quick and dirty check to see if pkg-config is available (and configured) -->
@@ -1760,26 +1805,52 @@
                     <if test="${not pkgconfig.available}">
                         <call target="configure-from-registry" />
                     </if>
+
                     <property name="toolDirectory" value="${path::combine(frameworkAssemblyDirectory, 'mono/2.1')}" />
                     <property name="runtimeEngine" value="${path::combine(sdkInstallRoot, 'bin/mono.exe')}" />
+                    <if test="${version::parse(mono.version) &lt; version::parse('3.0')}">
+                        <property name="csc.tool" value="smcs"/>
+                        <property name="mcs.sdk" value="0"/>
+                    </if>
+                    <if test="${version::parse(mono.version) >= version::parse('3.0')">
+                        <property name="csc.tool" value="mcs"/>
+                        <property name="mcs.sdk" value="2.1"/>
+                    </if>
+
                     <target name="configure-from-pkg-config">
                         <property name="mono.version" value="${pkg-config::get-mod-version('mono')}" />
                         <property name="sdkInstallRoot" value="${cygpath::get-windows-path(pkg-config::get-variable('mono', 'prefix'))}" />
                         <property name="frameworkAssemblyDirectory" value="${cygpath::get-windows-path(pkg-config::get-variable('mono', 'libdir'))}" />
                         <property name="configDir" value="${path::combine(sdkInstallRoot, 'etc')}/" />
                     </target>
+
                     <target name="configure-from-registry">
-                        <readregistry property="mono.version" key="SOFTWARE\Novell\Mono\DefaultCLR" hive="LocalMachine" />
-                        <property name="monokey" value="SOFTWARE\Novell\Mono\${mono.version}" />
-                        <readregistry property="sdkInstallRoot" key="${monokey}\SdkInstallRoot" hive="LocalMachine" />
-                        <readregistry property="frameworkAssemblyDirectory" key="${monokey}\FrameworkAssemblyDirectory"
+                        <monoregistry property="mono.reg" failonerror="false" />
+                        <readregistry
+                            property="mono.version"
+                            key="${mono.reg}\DefaultCLR"
+                            hive="LocalMachine"
+                        />
+                        <property name="monokey" value="${mono.reg}\${mono.version}" />
+
+                        <readregistry
+                            property="sdkInstallRoot"
+                            key="${monokey}\SdkInstallRoot"
+                            hive="LocalMachine" />
+                        <readregistry
+                            property="frameworkAssemblyDirectory"
+                            key="${monokey}\FrameworkAssemblyDirectory"
+                            hive="LocalMachine" />
+                        <readregistry
+                            property="configDir"
+                            key="${monokey}\MonoConfigDir"
                             hive="LocalMachine" />
-                        <readregistry property="configDir" key="${monokey}\MonoConfigDir" hive="LocalMachine" />
                     </target>
                 </project>
                 <tasks>
                     <task name="csc">
-                        <attribute name="exename">smcs</attribute>
+                        <attribute name="exename">${csc.tool}</attribute>
+                        <attribute name="mcssdk">${mcs.sdk}</attribute>
                         <attribute name="managed">true</attribute>
                         <attribute name="supportspackagereferences">true</attribute>
                         <attribute name="supportsnowarnlist">true</attribute>
@@ -2037,7 +2108,10 @@
                 </task-assemblies>
                 <tool-paths>
                     <directory name="${toolDirectory}" />
+                    <directory name="${path::combine(prefix, 'lib/mono/4.5')}" />
                     <directory name="${path::combine(prefix, 'lib/mono/1.0')}" />
+                    <!-- unmanaged tools -->
+                    <directory name="${prefix}/bin" />
                 </tool-paths>
                 <project>
                     <if test="${not pkg-config::exists('mono')}">
@@ -2059,13 +2133,22 @@
                     <if test="${pkg-config::is-atleast-version('mono', '1.2.3.50')}">
                         <property name="resgen.supportsexternalfilereferences" value="true" />
                     </if>
+                    <if test="${not(pkg-config::is-atleast-version('mono', '3.0'))}">
+                        <property name="csc.tool" value="gmcs"/>
+                        <property name="mcs.sdk" value="0"/>
+                    </if>
+                    <if test="${pkg-config::is-atleast-version('mono', '3.0')}">
+                        <property name="csc.tool" value="mcs"/>
+                        <property name="mcs.sdk" value="2"/>
+                    </if>
                 </project>
                 <tasks>
                     <task name="al">
                         <attribute name="managed">true</attribute>
                     </task>
                     <task name="csc">
-                        <attribute name="exename">gmcs</attribute>
+                        <attribute name="exename">${csc.tool}</attribute>
+                        <attribute name="mcssdk">${mcs.sdk}</attribute>
                         <attribute name="managed">true</attribute>
                         <attribute name="supportspackagereferences">true</attribute>
                         <attribute name="supportsnowarnlist">true</attribute>
@@ -2149,8 +2232,11 @@
                 </task-assemblies>
                 <tool-paths>
                     <directory name="${toolDirectory}" />
+                    <directory name="${path::combine(prefix, 'lib/mono/4.5')}" />
                     <directory name="${path::combine(prefix, 'lib/mono/2.0')}" />
                     <directory name="${path::combine(prefix, 'lib/mono/1.0')}" />
+                    <!-- unmanaged tools -->
+                    <directory name="${prefix}/bin" />
                 </tool-paths>
                 <project>
                     <if test="${not pkg-config::exists('mono')}">
@@ -2159,13 +2245,22 @@
                     <property name="resgen.supportsexternalfilereferences" value="false" />
                     <property name="prefix" value="${pkg-config::get-variable('mono', 'prefix')}" />
                     <property name="toolDirectory" value="${path::combine(prefix, 'lib/mono/3.5')}" />
+                    <if test="${not(pkg-config::is-atleast-version('mono', '3.0'))}">
+                        <property name="csc.tool" value="gmcs"/>
+                        <property name="mcs.sdk" value="0"/>
+                    </if>
+                    <if test="${pkg-config::is-atleast-version('mono', '3.0')}">
+                        <property name="csc.tool" value="mcs"/>
+                        <property name="mcs.sdk" value="2"/>
+                    </if>
                 </project>
                 <tasks>
                     <task name="al">
                         <attribute name="managed">true</attribute>
                     </task>
                     <task name="csc">
-                        <attribute name="exename">gmcs</attribute>
+                        <attribute name="exename">${csc.tool}</attribute>
+                        <attribute name="mcssdk">${mcs.sdk}</attribute>
                         <attribute name="managed">true</attribute>
                         <attribute name="langversion">linq</attribute>
                         <attribute name="supportspackagereferences">true</attribute>
@@ -2252,6 +2347,7 @@
                 </task-assemblies>
                 <tool-paths>
                     <directory name="${toolDirectory}" />
+                    <directory name="${path::combine(prefix, 'lib/mono/4.5')}" />
                     <directory name="${path::combine(prefix, 'lib/mono/3.5')}" />
                     <directory name="${path::combine(prefix, 'lib/mono/2.0')}" />
                     <directory name="${path::combine(prefix, 'lib/mono/1.0')}" />
@@ -2265,13 +2361,22 @@
                     <property name="resgen.supportsexternalfilereferences" value="false" />
                     <property name="prefix" value="${pkg-config::get-variable('mono', 'prefix')}" />
                     <property name="toolDirectory" value="${path::combine(prefix, 'lib/mono/4.0')}" />
+                    <if test="${not(pkg-config::is-atleast-version('mono', '3.0'))}">
+                        <property name="csc.tool" value="dmcs"/>
+                        <property name="mcs.sdk" value="0"/>
+                    </if>
+                    <if test="${pkg-config::is-atleast-version('mono', '3.0')}">
+                        <property name="csc.tool" value="mcs"/>
+                        <property name="mcs.sdk" value="4"/>
+                    </if>
                 </project>
                 <tasks>
                     <task name="al">
                         <attribute name="managed">true</attribute>
                     </task>
                     <task name="csc">
-                        <attribute name="exename">dmcs</attribute>
+                        <attribute name="exename">${csc.tool}</attribute>
+                        <attribute name="mcssdk">${mcs.sdk}</attribute>
                         <attribute name="managed">true</attribute>
                         <attribute name="langversion">linq</attribute>
                         <attribute name="supportspackagereferences">true</attribute>
@@ -2307,8 +2412,8 @@
                 </tasks>
             </framework>
             <framework
-                name="moonlight-2.0"
-                family="moonlight"
+                name="moonlight-2.0" 
+                family="moonlight" 
                 version="2.0"
                 description="Moonlight 2.0"
                 sdkdirectory="${toolDirectory}"
@@ -2329,13 +2434,17 @@
                     </modes>
                 </runtime>
                 <reference-assemblies basedir="${path::combine(prefix, 'lib/mono/2.1')}">
-                    <include name="agclr.dll" />
                     <include name="Microsoft.VisualBasic.dll" />
                     <include name="mscorlib.dll" />
                     <include name="System.Core.dll" />
                     <include name="System.dll" />
-                    <include name="System.Silverlight.dll" />
-                    <include name="System.Xml.Core.dll" />
+                    <include name="System.Net.dll" />
+                    <include name="System.Runtime.Serialization.dll" />
+                    <include name="System.ServiceModel.dll" />
+                    <include name="System.ServiceModel.Web.dll" />
+                    <include name="System.Windows.Browser.dll" />
+                    <include name="System.Windows.dll" />
+                    <include name="System.Xml.dll" />
                 </reference-assemblies>
                 <task-assemblies>
                     <!-- include MS.NET version-neutral assemblies -->
@@ -2351,8 +2460,11 @@
                 </task-assemblies>
                 <tool-paths>
                     <directory name="${toolDirectory}" />
+                    <directory name="${path::combine(prefix, 'lib/mono/4.5')}" />
                     <directory name="${path::combine(prefix, 'lib/mono/2.0')}" />
                     <directory name="${path::combine(prefix, 'lib/mono/1.0')}" />
+                    <!-- unmanaged tools -->
+                    <directory name="${prefix}/bin" />
                 </tool-paths>
                 <project>
                     <if test="${not pkg-config::exists('mono')}">
@@ -2360,10 +2472,19 @@
                     </if>
                     <property name="prefix" value="${pkg-config::get-variable('mono', 'prefix')}" />
                     <property name="toolDirectory" value="${path::combine(prefix, 'lib/mono/2.1')}" />
+                    <if test="${not(pkg-config::is-atleast-version('mono', '3.0'))}">
+                        <property name="csc.tool" value="smcs"/>
+                        <property name="mcs.sdk" value="0"/>
+                    </if>
+                    <if test="${pkg-config::is-atleast-version('mono', '3.0')}">
+                        <property name="csc.tool" value="mcs"/>
+                        <property name="mcs.sdk" value="2.1"/>
+                    </if>
                 </project>
                 <tasks>
                     <task name="csc">
-                        <attribute name="exename">smcs</attribute>
+                        <attribute name="exename">${csc.tool}</attribute>
+                        <attribute name="mcssdk">${mcs.sdk}</attribute>
                         <attribute name="managed">true</attribute>
                         <attribute name="supportspackagereferences">true</attribute>
                         <attribute name="supportsnowarnlist">true</attribute>
-- 
1.8.5.1


From 735a962d50d228dd80cf51eb3a4338625888d091 Mon Sep 17 00:00:00 2001
From: Ryan Boggs <rmboggs@gmail.com>
Date: Sun, 24 Mar 2013 01:25:48 -0700
Subject: [PATCH 5/7] Tabs to spaces

---
 src/NAnt.DotNet/Tasks/CscTask.cs | 40 ++++++++++++++++++++--------------------
 1 file changed, 20 insertions(+), 20 deletions(-)

diff --git a/src/NAnt.DotNet/Tasks/CscTask.cs b/src/NAnt.DotNet/Tasks/CscTask.cs
index 11848bb..11dc397 100644
--- a/src/NAnt.DotNet/Tasks/CscTask.cs
+++ b/src/NAnt.DotNet/Tasks/CscTask.cs
@@ -90,7 +90,7 @@ public class CscTask : CompilerBase {
         private string _langVersion;
 
         // framework configuration settings
-		private double _mcsSdk = 0;
+        private double _mcsSdk = 0;
         private bool _supportsDocGeneration = true;
         private bool _supportsPlatform;
         private bool _supportsLangVersion;
@@ -328,16 +328,16 @@ public class CscTask : CompilerBase {
             set { _codepage = StringUtils.ConvertEmptyToNull(value); }
         }
 
-		/// <summary>
-		/// Gets or sets the mcs sdk version to apply to the new mcs compiler
-		/// for Mono 3.0+
-		/// </summary>
-		[FrameworkConfigurable("mcssdk")]
-		public double McsSdk 
-		{
-			get { return _mcsSdk; }
-			set { _mcsSdk = value; }
-		}
+        /// <summary>
+        /// Gets or sets the mcs sdk version to apply to the new mcs compiler
+        /// for Mono 3.0+
+        /// </summary>
+        [FrameworkConfigurable("mcssdk")]
+        public double McsSdk 
+        {
+            get { return _mcsSdk; }
+            set { _mcsSdk = value; }
+        }
 
         /// <summary>
         /// Specifies whether the compiler for the active target framework
@@ -390,15 +390,15 @@ public double McsSdk
                 WriteOption(writer, "baseaddress", BaseAddress);
             }
 
-			// If mcs is the compiler and the specified McsSdk version is specified, append the new
-			// -sdk: option to the argument list.
-			if (PlatformHelper.IsMono) 
-			{
-				if (ExeName.Equals("mcs", StringComparison.InvariantCultureIgnoreCase) && _mcsSdk > 0) 
-				{
-					WriteOption(writer, "sdk", _mcsSdk.ToString());
-				}
-			}
+            // If mcs is the compiler and the specified McsSdk version is specified, append the new
+            // -sdk: option to the argument list.
+            if (PlatformHelper.IsMono) 
+            {
+                if (ExeName.Equals("mcs", StringComparison.InvariantCultureIgnoreCase) && _mcsSdk > 0) 
+                {
+                    WriteOption(writer, "sdk", _mcsSdk.ToString());
+                }
+            }
 
             // XML documentation
             if (DocFile != null) {
-- 
1.8.5.1


From 4ad065d009b043996d4ce2d25ce5031d81c6ce60 Mon Sep 17 00:00:00 2001
From: Ryan Boggs <rmboggs@gmail.com>
Date: Sun, 24 Mar 2013 09:06:24 -0700
Subject: [PATCH 6/7] Add missing '}' characters in App.config and
 Framework.config.

---
 src/NAnt.Console/App.config      | 8 ++++----
 tests/NAnt.Core/Framework.config | 8 ++++----
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/src/NAnt.Console/App.config b/src/NAnt.Console/App.config
index 5509d59..571ba23 100644
--- a/src/NAnt.Console/App.config
+++ b/src/NAnt.Console/App.config
@@ -1787,7 +1787,7 @@
                             <property name="csc.tool" value="gmcs"/>
                             <property name="mcs.sdk" value="0"/>
                         </if>
-                        <if test="${version::parse(mono.version) >= version::parse('3.0')">
+                        <if test="${version::parse(mono.version) >= version::parse('3.0')}">
                             <property name="csc.tool" value="mcs"/>
                             <property name="mcs.sdk" value="2"/>
                         </if>
@@ -1949,7 +1949,7 @@
                             <property name="csc.tool" value="gmcs"/>
                             <property name="mcs.sdk" value="0"/>
                         </if>
-                        <if test="${version::parse(mono.version) >= version::parse('3.0')">
+                        <if test="${version::parse(mono.version) >= version::parse('3.0')}">
                             <property name="csc.tool" value="mcs"/>
                             <property name="mcs.sdk" value="2"/>
                         </if>
@@ -2115,7 +2115,7 @@
                             <property name="csc.tool" value="dmcs"/>
                             <property name="mcs.sdk" value="0"/>
                         </if>
-                        <if test="${version::parse(mono.version) >= version::parse('3.0')">
+                        <if test="${version::parse(mono.version) >= version::parse('3.0')}">
                             <property name="csc.tool" value="mcs"/>
                             <property name="mcs.sdk" value="4"/>
                         </if>
@@ -2269,7 +2269,7 @@
                             <property name="csc.tool" value="smcs"/>
                             <property name="mcs.sdk" value="0"/>
                         </if>
-                        <if test="${version::parse(mono.version) >= version::parse('3.0')">
+                        <if test="${version::parse(mono.version) >= version::parse('3.0')}">
                             <property name="csc.tool" value="mcs"/>
                             <property name="mcs.sdk" value="2.1"/>
                         </if>
diff --git a/tests/NAnt.Core/Framework.config b/tests/NAnt.Core/Framework.config
index 803f0de..319940a 100755
--- a/tests/NAnt.Core/Framework.config
+++ b/tests/NAnt.Core/Framework.config
@@ -1330,7 +1330,7 @@
                         <property name="csc.tool" value="gmcs"/>
                         <property name="mcs.sdk" value="0"/>
                     </if>
-                    <if test="${version::parse(mono.version) >= version::parse('3.0')">
+                    <if test="${version::parse(mono.version) >= version::parse('3.0')}">
                         <property name="csc.tool" value="mcs"/>
                         <property name="mcs.sdk" value="2"/>
                     </if>
@@ -1492,7 +1492,7 @@
                         <property name="csc.tool" value="gmcs"/>
                         <property name="mcs.sdk" value="0"/>
                     </if>
-                    <if test="${version::parse(mono.version) >= version::parse('3.0')">
+                    <if test="${version::parse(mono.version) >= version::parse('3.0')}">
                         <property name="csc.tool" value="mcs"/>
                         <property name="mcs.sdk" value="2"/>
                     </if>
@@ -1658,7 +1658,7 @@
                         <property name="csc.tool" value="dmcs"/>
                         <property name="mcs.sdk" value="0"/>
                     </if>
-                    <if test="${version::parse(mono.version) >= version::parse('3.0')">
+                    <if test="${version::parse(mono.version) >= version::parse('3.0')}">
                         <property name="csc.tool" value="mcs"/>
                         <property name="mcs.sdk" value="4"/>
                     </if>
@@ -1812,7 +1812,7 @@
                         <property name="csc.tool" value="smcs"/>
                         <property name="mcs.sdk" value="0"/>
                     </if>
-                    <if test="${version::parse(mono.version) >= version::parse('3.0')">
+                    <if test="${version::parse(mono.version) >= version::parse('3.0')}">
                         <property name="csc.tool" value="mcs"/>
                         <property name="mcs.sdk" value="2.1"/>
                     </if>
-- 
1.8.5.1


From 8e7fd37c74669a439e9988bfa232db9ae318eeb6 Mon Sep 17 00:00:00 2001
From: Ryan Boggs <rmboggs@gmail.com>
Date: Sun, 24 Mar 2013 15:33:42 -0700
Subject: [PATCH 7/7] Changed McsSdk property from public to protected to
 reduce unnecessary visibility.

---
 src/NAnt.DotNet/Tasks/CscTask.cs | 26 +++++++++++++++-----------
 1 file changed, 15 insertions(+), 11 deletions(-)

diff --git a/src/NAnt.DotNet/Tasks/CscTask.cs b/src/NAnt.DotNet/Tasks/CscTask.cs
index 11dc397..b0ad97b 100644
--- a/src/NAnt.DotNet/Tasks/CscTask.cs
+++ b/src/NAnt.DotNet/Tasks/CscTask.cs
@@ -329,17 +329,6 @@ public class CscTask : CompilerBase {
         }
 
         /// <summary>
-        /// Gets or sets the mcs sdk version to apply to the new mcs compiler
-        /// for Mono 3.0+
-        /// </summary>
-        [FrameworkConfigurable("mcssdk")]
-        public double McsSdk 
-        {
-            get { return _mcsSdk; }
-            set { _mcsSdk = value; }
-        }
-
-        /// <summary>
         /// Specifies whether the compiler for the active target framework
         /// supports generation of XML Documentation file. The default is 
         /// <see langword="true" />.
@@ -374,6 +363,21 @@ public double McsSdk
 
         #endregion Public Instance Properties
 
+        #region Protected Instance Properties
+
+        /// <summary>
+        /// Gets or sets the mcs sdk version to apply to the new mcs compiler
+        /// for Mono 3.0+
+        /// </summary>
+        [FrameworkConfigurable("mcssdk")]
+        protected double McsSdk 
+        {
+            get { return _mcsSdk; }
+            set { _mcsSdk = value; }
+        }
+
+        #endregion Protected Instance Properties
+
         #region Override implementation of CompilerBase
 
         /// <summary>
-- 
1.8.5.1