git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@278007 13f79535-47bb-0310-9956-ffa450edef68master
| @@ -156,6 +156,11 @@ Changes that could break older environments: | |||||
| you must set filtertrace to false. | you must set filtertrace to false. | ||||
| Bugzilla Report 22758 | Bugzilla Report 22758 | ||||
| * The jikes compiler adapter now supports -bootclasspath, -extdirs and | |||||
| -sourcepath and also uses the same logic for debug flags as javac. | |||||
| This means, the jikes compiler adapter now requires Jikes 1.15 or later. | |||||
| Bugzilla Reports 25868, 26404 and 32609. | |||||
| Other changes: | Other changes: | ||||
| -------------- | -------------- | ||||
| @@ -194,9 +199,6 @@ Other changes: | |||||
| * added a new mapper <filtermapper> | * added a new mapper <filtermapper> | ||||
| * The jikes compiler adapter now supports -bootclasspath. Bugzilla | |||||
| Report 32609. | |||||
| * When a BuildListener tried to access System.err or System.out, Ant | * When a BuildListener tried to access System.err or System.out, Ant | ||||
| would have thrown an exception - this has been changed. Ant now | would have thrown an exception - this has been changed. Ant now | ||||
| silently ignores the message. BuildListeners still should avoid | silently ignores the message. BuildListeners still should avoid | ||||
| @@ -58,7 +58,7 @@ attribute are:</a></p> | |||||
| <code>javac1.4</code> and | <code>javac1.4</code> and | ||||
| <code>javac1.5</code> can be used as aliases.</li> | <code>javac1.5</code> can be used as aliases.</li> | ||||
| <li><code>jikes</code> (the <a | <li><code>jikes</code> (the <a | ||||
| href="http://oss.software.ibm.com/developerworks/opensource/jikes/" target="_top">Jikes</a> | |||||
| href="http://jikes.sourceforge.net/" target="_top">Jikes</a> | |||||
| compiler).</li> | compiler).</li> | ||||
| <li><code>jvc</code> (the Command-Line Compiler from Microsoft's SDK | <li><code>jvc</code> (the Command-Line Compiler from Microsoft's SDK | ||||
| for Java / Visual J++) – <code>microsoft</code> can be used | for Java / Visual J++) – <code>microsoft</code> can be used | ||||
| @@ -209,7 +209,7 @@ invoking the compiler.</p> | |||||
| <td valign="top">debuglevel</td> | <td valign="top">debuglevel</td> | ||||
| <td valign="top">Keyword list to be appended to the <code>-g</code> | <td valign="top">Keyword list to be appended to the <code>-g</code> | ||||
| command-line switch. This will be ignored by all implementations except | command-line switch. This will be ignored by all implementations except | ||||
| <code>modern</code> and <code>classic(ver >= 1.2)</code>. | |||||
| <code>modern</code>, <code>classic(ver >= 1.2)</code> and <code>jikes</code>. | |||||
| Legal values are <code>none</code> or a comma-separated list of the | Legal values are <code>none</code> or a comma-separated list of the | ||||
| following keywords: | following keywords: | ||||
| <code>lines</code>, <code>vars</code>, and <code>source</code>. | <code>lines</code>, <code>vars</code>, and <code>source</code>. | ||||
| @@ -536,6 +536,8 @@ using. This problem may occur with all JDKs < 1.2.</p> | |||||
| <h3>Jikes Notes</h3> | <h3>Jikes Notes</h3> | ||||
| <p>You need Jikes 1.15 or later.</p> | |||||
| <p>Jikes supports some extra options, which can be set be defining | <p>Jikes supports some extra options, which can be set be defining | ||||
| the properties shown below prior to invoking the task. The setting | the properties shown below prior to invoking the task. The setting | ||||
| for each property will be in affect for all <code><javac></code> | for each property will be in affect for all <code><javac></code> | ||||
| @@ -44,11 +44,24 @@ public class Jikes extends DefaultCompilerAdapter { | |||||
| public boolean execute() throws BuildException { | public boolean execute() throws BuildException { | ||||
| attributes.log("Using jikes compiler", Project.MSG_VERBOSE); | attributes.log("Using jikes compiler", Project.MSG_VERBOSE); | ||||
| Path classpath = new Path(project); | |||||
| Commandline cmd = new Commandline(); | |||||
| // Jikes doesn't support an extension dir (-extdir) | |||||
| // so we'll emulate it for compatibility and convenience. | |||||
| classpath.addExtdirs(extdirs); | |||||
| // For -sourcepath, use the "sourcepath" value if present. | |||||
| // Otherwise default to the "srcdir" value. | |||||
| Path sourcepath = null; | |||||
| if (compileSourcepath != null) { | |||||
| sourcepath = compileSourcepath; | |||||
| } else { | |||||
| sourcepath = src; | |||||
| } | |||||
| // If the buildfile specifies sourcepath="", then don't | |||||
| // output any sourcepath. | |||||
| if (sourcepath.size() > 0) { | |||||
| cmd.createArgument().setValue("-sourcepath"); | |||||
| cmd.createArgument().setPath(sourcepath); | |||||
| } | |||||
| Path classpath = new Path(project); | |||||
| if (bootclasspath == null || bootclasspath.size() == 0) { | if (bootclasspath == null || bootclasspath.size() == 0) { | ||||
| // no bootclasspath, therefore, get one from the java runtime | // no bootclasspath, therefore, get one from the java runtime | ||||
| @@ -61,21 +74,17 @@ public class Jikes extends DefaultCompilerAdapter { | |||||
| } | } | ||||
| classpath.append(getCompileClasspath()); | classpath.append(getCompileClasspath()); | ||||
| // Jikes has no option for source-path so we | |||||
| // will add it to classpath. | |||||
| if (compileSourcepath != null) { | |||||
| classpath.append(compileSourcepath); | |||||
| } else { | |||||
| classpath.append(src); | |||||
| } | |||||
| // if the user has set JIKESPATH we should add the contents as well | // if the user has set JIKESPATH we should add the contents as well | ||||
| String jikesPath = System.getProperty("jikes.class.path"); | String jikesPath = System.getProperty("jikes.class.path"); | ||||
| if (jikesPath != null) { | if (jikesPath != null) { | ||||
| classpath.append(new Path(project, jikesPath)); | classpath.append(new Path(project, jikesPath)); | ||||
| } | } | ||||
| Commandline cmd = new Commandline(); | |||||
| if (extdirs != null && extdirs.size() > 0) { | |||||
| cmd.createArgument().setValue("-extdirs"); | |||||
| cmd.createArgument().setPath(extdirs); | |||||
| } | |||||
| String exec = getJavac().getExecutable(); | String exec = getJavac().getExecutable(); | ||||
| cmd.setExecutable(exec == null ? "jikes" : exec); | cmd.setExecutable(exec == null ? "jikes" : exec); | ||||
| @@ -96,7 +105,14 @@ public class Jikes extends DefaultCompilerAdapter { | |||||
| cmd.createArgument().setValue(encoding); | cmd.createArgument().setValue(encoding); | ||||
| } | } | ||||
| if (debug) { | if (debug) { | ||||
| cmd.createArgument().setValue("-g"); | |||||
| String debugLevel = attributes.getDebugLevel(); | |||||
| if (debugLevel != null) { | |||||
| cmd.createArgument().setValue("-g:" + debugLevel); | |||||
| } else { | |||||
| cmd.createArgument().setValue("-g"); | |||||
| } | |||||
| } else { | |||||
| cmd.createArgument().setValue("-g:none"); | |||||
| } | } | ||||
| if (optimize) { | if (optimize) { | ||||
| cmd.createArgument().setValue("-O"); | cmd.createArgument().setValue("-O"); | ||||
| @@ -148,12 +164,6 @@ public class Jikes extends DefaultCompilerAdapter { | |||||
| cmd.createArgument().setValue("-nowarn"); | cmd.createArgument().setValue("-nowarn"); | ||||
| } | } | ||||
| } if (attributes.getNowarn()) { | } if (attributes.getNowarn()) { | ||||
| /* | |||||
| * FIXME later | |||||
| * | |||||
| * let the magic property win over the attribute for backwards | |||||
| * compatibility | |||||
| */ | |||||
| cmd.createArgument().setValue("-nowarn"); | cmd.createArgument().setValue("-nowarn"); | ||||
| } | } | ||||