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) < 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) < 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) < 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) < 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) < 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) < 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) < 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) < 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) < 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