Browse Source

Add support for Symantec's javac.

Submitted by:	Don Ferguson <don@bea.com>


git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@269467 13f79535-47bb-0310-9956-ffa450edef68
master
Stefan Bodewig 24 years ago
parent
commit
00e45341a1
4 changed files with 96 additions and 4 deletions
  1. +3
    -2
      WHATSNEW
  2. +2
    -1
      docs/manual/CoreTasks/javac.html
  3. +5
    -1
      src/main/org/apache/tools/ant/taskdefs/compilers/CompilerAdapterFactory.java
  4. +86
    -0
      src/main/org/apache/tools/ant/taskdefs/compilers/Sj.java

+ 3
- 2
WHATSNEW View File

@@ -135,8 +135,9 @@ Other changes:
elements - using these you can have more than one in/excludes file elements - using these you can have more than one in/excludes file
per <patternset>. 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. 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 * <fixrlf> can now with CR only line-ends and can use an arbitraty


+ 2
- 1
docs/manual/CoreTasks/javac.html View File

@@ -37,10 +37,11 @@ inclusion/exclusion of files works, and how to write patterns.</p>
href="http://oss.software.ibm.com/developerworks/opensource/jikes/project" target="_top">Jikes</a> href="http://oss.software.ibm.com/developerworks/opensource/jikes/project" target="_top">Jikes</a>
compiler)</li> compiler)</li>
<li>jvc (the Command-Line Compiler from Microsoft's SDK for Java / <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> <li>kjc (the <a href="http://www.dms.at/kopi/" target="_top">kopi</a>
compiler)</li> compiler)</li>
<li>gcj (the gcj compiler from gcc)</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> <li>extJavac (run either modern or classic in a JVM of its own)</li>
</ul> </ul>
<p>For JDK 1.1/1.2, classic is the default. For JDK 1.3/1.4, modern is the default. <p>For JDK 1.1/1.2, classic is the default. For JDK 1.3/1.4, modern is the default.


+ 5
- 1
src/main/org/apache/tools/ant/taskdefs/compilers/CompilerAdapterFactory.java View File

@@ -102,7 +102,7 @@ public class CompilerAdapterFactory {
} }
if ( compilerType.equalsIgnoreCase("extJavac") ) { if ( compilerType.equalsIgnoreCase("extJavac") ) {
return new JavacExternal(); return new JavacExternal();
}
}
if ( compilerType.equalsIgnoreCase("classic") || if ( compilerType.equalsIgnoreCase("classic") ||
compilerType.equalsIgnoreCase("javac1.1") || compilerType.equalsIgnoreCase("javac1.1") ||
compilerType.equalsIgnoreCase("javac1.2")) { compilerType.equalsIgnoreCase("javac1.2")) {
@@ -130,6 +130,10 @@ public class CompilerAdapterFactory {
if ( compilerType.equalsIgnoreCase("gcj") ) { if ( compilerType.equalsIgnoreCase("gcj") ) {
return new Gcj(); return new Gcj();
} }
if (compilerType.equalsIgnoreCase("sj") ||
compilerType.equalsIgnoreCase("symantec")) {
return new Sj();
}
return resolveClassName( compilerType ); return resolveClassName( compilerType );
} }




+ 86
- 0
src/main/org/apache/tools/ant/taskdefs/compilers/Sj.java View File

@@ -0,0 +1,86 @@
/*
* 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 apache@apache.org.
*
* 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:don@bea.com">Don Ferguson</a>
*/
public class Sj extends DefaultCompilerAdapter {

/**
* Performs a compile using the sj compiler from Symantec.
* @author don@bea.com
*/
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;
}


}


Loading…
Cancel
Save