stevel 2003/09/21 15:29:54 Modified: src/etc/testcases/taskdefs/optional dotnet.xml src/main/org/apache/tools/ant/taskdefs/optional/dotnet DotnetCompile.java JSharp.java src/testcases/org/apache/tools/ant/taskdefs/optional DotnetTest.java Added: src/etc/testcases/taskdefs/optional/dotnet jsharp.java Log: 1. remove the default library stuff from csc & the compiler. 2. remove the new standardlib flag needed to work around (1) 3. added a test for the jsharp compiler, and a fix to get the task to work. Revision Changes Path 1.13 +78 -58 ant/src/etc/testcases/taskdefs/optional/dotnet.xml Index: dotnet.xml =================================================================== RCS file: /home/cvs/ant/src/etc/testcases/taskdefs/optional/dotnet.xml,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- dotnet.xml 16 Sep 2003 08:29:08 -0000 1.12 +++ dotnet.xml 21 Sep 2003 22:29:54 -0000 1.13 @@ -4,11 +4,11 @@ <property environment="env"/> <property name="build.dir" location="dotnet/build"/> <property name="src.dir" location="dotnet"/> - + <property name="out.csc" location="${src.dir}/out.cs"/> <property name="out.app" location="${build.dir}/out.exe"/> - <property name="out.type" value="exe"/> - + <property name="out.type" value="exe"/> + <target name="probe_for_apps" > <condition property="ilasm.found"> <or> @@ -26,15 +26,24 @@ </or> </condition> <echo> csc.found=${csc.found}</echo> -<!-- <condition property="vbc.found"> + <!-- visual basic compiler --> + <condition property="vbc.found"> <or> <available file="vbc" filepath="${env.PATH}" /> <available file="vbc.exe" filepath="${env.PATH}" /> <available file="vbc.exe" filepath="${env.Path}" /> </or> - </condition> + </condition> <echo> vbc.found=${vbc.found}</echo> - --> + <!-- visual J# compiler --> + <condition property="jsharp.found"> + <or> + <available file="vjc" filepath="${env.PATH}" /> + <available file="vjc.exe" filepath="${env.PATH}" /> + <available file="vjc.exe" filepath="${env.Path}" /> + </or> + </condition> + <echo> jsharp.found=${jsharp.found}</echo> <!-- Mono C# compiler --> <condition property="mcs.found"> @@ -64,7 +73,7 @@ </or> </condition> <echo> ildasm.found=${ildasm.found}</echo> - + <condition property="dotnetapps.found"> <or> <and> @@ -88,31 +97,36 @@ </condition> <property name="mono.executable" value="mint"/> </target> - + <target name="init" depends="probe_for_apps"> <mkdir dir="${build.dir}"/> </target> <target name="teardown"> <delete dir="${build.dir}"/> - </target> - + </target> + <target name="validate_csc" depends="init"> <fail unless="c#.found">Needed C# compiler is missing</fail> - </target> - + </target> + <target name="validate_ilasm" depends="init"> <fail unless="ilasm.found">Needed ilasm is missing</fail> - </target> - + </target> + + <target name="validate_jsharp" depends="init"> + <fail unless="jsharp.found">No vjc on the path</fail> + </target> + + <target name="testCSC" depends="testCSC-Mono,testCSC-MS"/> <target name="testCSC-MS" depends="validate_csc" if="csc.found"> - <property name="testCSC.exe" + <property name="testCSC.exe" location="${build.dir}/ExampleCsc.exe" /> - <csc + <csc destFile="${testCSC.exe}" - targetType="exe" + targetType="exe" > </csc> <available property="app.created" file="${testCSC.exe}"/> @@ -122,25 +136,24 @@ </target> <target name="testCSC-Mono" depends="validate_csc" if="mcs.found"> - <property name="testCSC.exe" + <property name="testCSC.exe" location="${build.dir}/ExampleCsc.exe" /> - <csc + <csc destFile="${testCSC.exe}" - targetType="exe" + targetType="exe" executable="mcs" includedefaultreferences="false" - standardlib="true" > </csc> <available property="app.created" file="${testCSC.exe}"/> <fail unless="app.created">No app ${testCSC.exe} created</fail> <exec executable="${mono.executable}" failonerror="true"> <arg value="${testCSC.exe}"/> - </exec> + </exec> <delete file="${testCSC.exe}"/> </target> - <target name="testCSCintrinsicFileset" + <target name="testCSCintrinsicFileset" depends="testCSCintrinsicFileset-MS,testCSCintrinsicFileset-Mono"/> <target name="testCSCintrinsicFileset-MS" depends="validate_csc" if="csc.found"> @@ -167,14 +180,13 @@ srcDir="." executable="mcs" includedefaultreferences="false" - standardlib="true" > </csc> <available property="app.created" file="${testCSC.exe}"/> <fail unless="app.created">No app ${testCSC.exe} created</fail> <exec executable="${mono.executable}" failonerror="true"> <arg value="${testCSC.exe}"/> - </exec> + </exec> <delete file="${testCSC.exe}"/> </target> @@ -183,7 +195,7 @@ <target name="testCSCdll-MS" depends="validate_csc" if="csc.found"> <property name="testCSC.dll" location="${build.dir}/Example2.dll" /> - <csc + <csc destFile="${testCSC.dll}" targetType="library" executable="csc" @@ -193,33 +205,32 @@ <available property="dll.created" file="${testCSC.dll}"/> <fail unless="dll.created">No file ${testCSC.dll} created</fail> </target> - + <target name="testCSCdll-Mono" depends="validate_csc" if="mcs.found"> <property name="testCSC.dll" location="${build.dir}/Example2.dll" /> - <csc + <csc destFile="${testCSC.dll}" targetType="library" executable="mcs" includedefaultreferences="false" - standardlib="true" > <src dir="${src.dir}" includes="example2.cs"/> </csc> <available property="dll.created" file="${testCSC.dll}"/> <fail unless="dll.created">No file ${testCSC.dll} created</fail> </target> - + <target name="testCscReferences" depends="testCscReferences-MS,testCscReferences-Mono"/> <target name="testCscReferences-MS" depends="validate_csc,testCSCdll-MS" if="csc.found"> - <property name="testCscReferences.exe" + <property name="testCscReferences.exe" location="${build.dir}/ExampleCsc2.exe" /> - <csc + <csc destFile="${testCscReferences.exe}" - targetType="exe" + targetType="exe" > <src file="${src.dir}/example.cs"/> <reference file="${testCSC.dll}" /> @@ -231,17 +242,16 @@ <fail unless="refapp.created">No app ${testCscReferences.exe} created</fail> <exec executable="${testCscReferences.exe}" failonerror="true" /> </target> - + <target name="testCscReferences-Mono" depends="validate_csc,testCSCdll-Mono" if="mcs.found"> - <property name="testCscReferences.exe" + <property name="testCscReferences.exe" location="${build.dir}/ExampleCsc2.exe" /> - <csc + <csc destFile="${testCscReferences.exe}" - targetType="exe" + targetType="exe" executable="mcs" includedefaultreferences="false" - standardlib="true" > <src file="${src.dir}/example.cs"/> <reference file="${testCSC.dll}" /> @@ -253,13 +263,13 @@ <fail unless="refapp.created">No app ${testCscReferences.exe} created</fail> <exec executable="${mono.executable}" failonerror="true"> <arg value="${testCscReferences.exe}"/> - </exec> + </exec> </target> <target name="testILASM" depends="validate_ilasm" if="ilasm.found"> - <property name="testILASM.exe" + <property name="testILASM.exe" location="${build.dir}/ExampleIlasm.exe" /> - <ilasm + <ilasm destFile="${testILASM.exe}" targetType="exe" > @@ -268,29 +278,29 @@ <available property="ilasm.created" file="${testILASM.exe}"/> <fail unless="ilasm.created">No app ${testILASM.exe} created</fail> <exec executable="${testILASM.exe}" failonerror="true" /> - </target> + </target> <!-- not including this in the test as it creates an exe in the src dir --> - + <target name="testIlasmNoDestFile" depends="validate_ilasm"> - <ilasm - targetType="exe" + <ilasm + targetType="exe" > <src dir="${src.dir}" includes="**/*.il"/> </ilasm> - </target> - + </target> + <!-- just here to look at fileset refid conversion by hand --> <target name="echoFileset"> - <fileset id="ilasm" dir="${src.dir}" includes="**/*.il" /> + <fileset id="ilasm" dir="${src.dir}" includes="**/*.il" /> <property name="ilasm.string" refid="ilasm"/> <echo>${ilasm.string}</echo> </target> - + <target name="testILDASM" depends="testILASM" if="ildasm.found"> - <property name="testILDASM.il" + <property name="testILDASM.il" location="${build.dir}/ExampleIldasm.il" /> - <ildasm + <ildasm srcFile="${testILASM.exe}" destFile="${testILDASM.il}" metadata="true" @@ -300,15 +310,25 @@ /> <available property="ildasm.created" file="${testILDASM.il}"/> <fail unless="ildasm.created">No file ${testILDASM.il} created</fail> - </target> + </target> <!-- this is an error --> <target name="testILDASM_empty" depends="validate_ilasm" > - <ildasm/> - </target> - <target name="testILDASM_empty" depends="validate_ilasm" > - <ildasm/> - </target> - + <ildasm/> + </target> + + <target name="jsharp" depends="init" if="jsharp.found" > + <property name="jsharp.exe" + location="${build.dir}/jsharp.exe" /> + <jsharpc + destFile="${jsharp.exe}" + targetType="exe" + > + <src dir="dotnet" includes="*.java"/> + </jsharpc> + <exec executable="${jsharp.exe}" failonerror="true" /> + </target> + + </project> 1.17 +1 -100 ant/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/DotnetCompile.java Index: DotnetCompile.java =================================================================== RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/DotnetCompile.java,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- DotnetCompile.java 21 Sep 2003 20:20:03 -0000 1.16 +++ DotnetCompile.java 21 Sep 2003 22:29:54 -0000 1.17 @@ -160,46 +160,6 @@ protected String executable; - protected Boolean standardLib; - - /** - * Fix .NET reference inclusion. .NET is really dumb in how it handles - * inclusion. You have to list every 'assembly' -read DLL that is imported. - * So already you are making a platform assumption -shared libraries have a - * .dll;"+ extension and the poor developer has to know every library which - * is included why the compiler cant find classes on the path or in a - * directory, is a mystery. To reduce the need to be explicit, here is a - * long list of the core libraries used in Beta-1 of .NET omitting the - * blatantly non portable (MS.win32.interop) and the .designer libraries. - * (ripping out Com was tempting) Casing is chosen to match that of the - * file system <i>exactly</i> so may work on a unix box too. there is no - * need to reference mscorlib.dll, because it is always there - */ - - protected static final String[] DEFAULT_REFERENCE_LIST_DOTNET_10 = {"Accessibility.dll", - "cscompmgd.dll", - "CustomMarshalers.dll", - "Mscorcfg.dll", - "System.Configuration.Install.dll", - "System.Data.dll", - "System.Design.dll", - "System.DirectoryServices.dll", - "System.EnterpriseServices.dll", - "System.dll", - "System.Drawing.Design.dll", - "System.Drawing.dll", - "System.Management.dll", - "System.Messaging.dll", - "System.Runtime.Remoting.dll", - "System.Runtime.Serialization.Formatters.Soap.dll", - "System.Security.dll", - "System.ServiceProcess.dll", - "System.Web.dll", - "System.Web.RegularExpressions.dll", - "System.Web.Services.dll", - "System.Windows.Forms.dll", - "System.XML.dll"}; - protected static final String REFERENCE_OPTION = "/reference:"; /** @@ -349,22 +309,6 @@ /** - * get default reference list - * - [EMAIL PROTECTED] null or a string of references. - */ - protected String getDefaultReferenceParameter() { - if (includeDefaultReferences) { - StringBuffer s = new StringBuffer("/reference:"); - s.append(getDefaultReferenceList()); - return new String(s); - } else { - return null; - } - } - - - /** * If true, automatically includes the common assemblies * in dotnet, and tells the compiler to link in mscore.dll. * @@ -394,11 +338,7 @@ [EMAIL PROTECTED] The Parameter to CSC */ protected String getIncludeDefaultReferencesParameter() { - if (standardLib == null) { - return "/nostdlib" + (includeDefaultReferences ? "-" : "+"); - } else { - return null; - } + return "/nostdlib" + (includeDefaultReferences ? "-" : "+"); } @@ -827,29 +767,6 @@ } /** - * turn standard lib support on or off. - * Setting this in either direction overrides anything set in defaultreferences. - * @param standardLib - */ - public void setStandardLib(Boolean standardLib) { - this.standardLib = standardLib; - } - - - /** - * get the include default references flag or null for no argument needed - * - [EMAIL PROTECTED] The Parameter to CSC - */ - protected String getStandardLibParameter() { - if (standardLib != null) { - return "/nostdlib" + (standardLib.booleanValue() ? "-" : "+"); - } else { - return null; - } - } - - /** * test for a string containing something useful * [EMAIL PROTECTED] s string in @@ -874,20 +791,6 @@ } /** - * Based on DEFAULT_REFERENCE_LIST and getReferenceDelimiter(), - * build the appropriate reference string for the compiler. - * @return The properly delimited reference list. - */ - public String getDefaultReferenceList() { - StringBuffer referenceList = new StringBuffer(); - for (int index = 0; index < DEFAULT_REFERENCE_LIST_DOTNET_10.length; index++) { - referenceList.append(DEFAULT_REFERENCE_LIST_DOTNET_10[index]); - referenceList.append(getReferenceDelimiter()); - } - return referenceList.toString(); - } - - /** * Get the pattern for files to compile. * @return The compilation file pattern. */ @@ -941,8 +844,6 @@ command.addArgument("/nologo"); command.addArgument(getAdditionalModulesParameter()); command.addArgument(getDebugParameter()); - command.addArgument(getDefaultReferenceParameter()); - command.addArgument(getStandardLibParameter()); command.addArgument(getDefinitionsParameter()); command.addArgument(getExtraOptionsParameter()); command.addArgument(getMainClassParameter()); 1.5 +1 -1 ant/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/JSharp.java Index: JSharp.java =================================================================== RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/JSharp.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- JSharp.java 1 Aug 2003 05:55:16 -0000 1.4 +++ JSharp.java 21 Sep 2003 22:29:54 -0000 1.5 @@ -136,7 +136,7 @@ */ protected void addCompilerSpecificOptions(NetCommand command) { if (pureJava) { - command.addArgument("/x"); + command.addArgument("/x:all"); } if (secureScoping) { command.addArgument("/securescoping"); 1.5 +6 -1 ant/src/testcases/org/apache/tools/ant/taskdefs/optional/DotnetTest.java Index: DotnetTest.java =================================================================== RCS file: /home/cvs/ant/src/testcases/org/apache/tools/ant/taskdefs/optional/DotnetTest.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- DotnetTest.java 6 Sep 2003 07:09:59 -0000 1.4 +++ DotnetTest.java 21 Sep 2003 22:29:54 -0000 1.5 @@ -151,6 +151,11 @@ "invalid"); } - + /** + * test we can handle jsharp (if found) + */ + public void testJsharp() throws Exception { + executeTarget("jsharp"); + } } 1.1 ant/src/etc/testcases/taskdefs/optional/dotnet/jsharp.java Index: jsharp.java =================================================================== /* * The Apache Software License, Version 1.1 * * Copyright (c) 2003 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The end-user documentation included with the redistribution, if * any, must include the following acknowlegement: * "This product includes software developed by the * Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowlegement may appear in the software itself, * if and wherever such third-party acknowlegements normally appear. * * 4. The names "Ant" and "Apache Software * Foundation" must not be used to endorse or promote products derived * from this software without prior written permission. For written * permission, please contact [EMAIL PROTECTED] * * 5. Products derived from this software may not be called "Apache" * nor may "Apache" appear in their names without prior written * permission of the Apache Group. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. */ /** * this is a j# class, not a java one. */ public class jsharp { public static void main(String args[]) { System.out.println("hello, I look like Java, but I'm really J#"); } }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]