bodewig 01/08/06 02:04:26
Modified: . WHATSNEW
docs/manual/CoreTasks javac.html
src/main/org/apache/tools/ant/taskdefs/compilers
CompilerAdapterFactory.java
Added: src/main/org/apache/tools/ant/taskdefs/compilers Sj.java
Log:
Add support for Symantec's javac.
Submitted by: Don Ferguson <[EMAIL PROTECTED]>
Revision Changes Path
1.139 +3 -2 jakarta-ant/WHATSNEW
Index: WHATSNEW
===================================================================
RCS file: /home/cvs/jakarta-ant/WHATSNEW,v
retrieving revision 1.138
retrieving revision 1.139
diff -u -r1.138 -r1.139
--- WHATSNEW 2001/08/03 14:36:47 1.138
+++ WHATSNEW 2001/08/06 09:04:25 1.139
@@ -135,8 +135,9 @@
elements - using these you can have more than one in/excludes file
per <patternset>.
-* Two new supported compilers for javac: kjc for kopi and gcj for the
- gcc frontend. In addition extJavac or the new fork attribute can be
+* Three new supported compilers for javac: kjc for kopi, gcj for the
+ gcc frontend and sj for Symantec's compiler.
+ In addition extJavac or the new fork attribute can be
used to run the JDK's javac in a JVM separate from Ant.
* <fixrlf> can now with CR only line-ends and can use an arbitraty
1.9 +2 -1 jakarta-ant/docs/manual/CoreTasks/javac.html
Index: javac.html
===================================================================
RCS file: /home/cvs/jakarta-ant/docs/manual/CoreTasks/javac.html,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- javac.html 2001/08/03 14:36:48 1.8
+++ javac.html 2001/08/06 09:04:25 1.9
@@ -37,10 +37,11 @@
href="http://oss.software.ibm.com/developerworks/opensource/jikes/project"
target="_top">Jikes</a>
compiler)</li>
<li>jvc (the Command-Line Compiler from Microsoft's SDK for Java /
- Visual J++)</li>
+ Visual J++) - microsoft can be used as an alias</li>
<li>kjc (the <a href="http://www.dms.at/kopi/" target="_top">kopi</a>
compiler)</li>
<li>gcj (the gcj compiler from gcc)</li>
+ <li>sj (Symantec java compiler) - symantec can be used as an alias</li>
<li>extJavac (run either modern or classic in a JVM of its own)</li>
</ul>
<p>For JDK 1.1/1.2, classic is the default. For JDK 1.3/1.4, modern is the
default.
1.4 +5 -1
jakarta-ant/src/main/org/apache/tools/ant/taskdefs/compilers/CompilerAdapterFactory.java
Index: CompilerAdapterFactory.java
===================================================================
RCS file:
/home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/compilers/CompilerAdapterFactory.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- CompilerAdapterFactory.java 2001/08/03 14:36:48 1.3
+++ CompilerAdapterFactory.java 2001/08/06 09:04:26 1.4
@@ -102,7 +102,7 @@
}
if ( compilerType.equalsIgnoreCase("extJavac") ) {
return new JavacExternal();
- }
+ }
if ( compilerType.equalsIgnoreCase("classic") ||
compilerType.equalsIgnoreCase("javac1.1") ||
compilerType.equalsIgnoreCase("javac1.2")) {
@@ -129,6 +129,10 @@
}
if ( compilerType.equalsIgnoreCase("gcj") ) {
return new Gcj();
+ }
+ if (compilerType.equalsIgnoreCase("sj") ||
+ compilerType.equalsIgnoreCase("symantec")) {
+ return new Sj();
}
return resolveClassName( compilerType );
}
1.1
jakarta-ant/src/main/org/apache/tools/ant/taskdefs/compilers/Sj.java
Index: Sj.java
===================================================================
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001 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 "The Jakarta Project", "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/>.
*/
package org.apache.tools.ant.taskdefs.compilers;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.types.*;
/**
* The implementation of the sj compiler.
* Uses the defaults for DefaultCompilerAdapter
*
* @author <a href="mailto:[EMAIL PROTECTED]">Don Ferguson</a>
*/
public class Sj extends DefaultCompilerAdapter {
/**
* Performs a compile using the sj compiler from Symantec.
* @author [EMAIL PROTECTED]
*/
public boolean execute() throws BuildException {
attributes.log("Using symantec java compiler", Project.MSG_VERBOSE);
Commandline cmd = setupJavacCommand();
cmd.setExecutable("sj");
int firstFileName = cmd.size() - compileList.length;
return executeExternalCompile(cmd.getCommandline(), firstFileName) ==
0;
}
}