PR: 5268 Submitted by: Alex Rosen <arosen@silverstream.com> git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271351 13f79535-47bb-0310-9956-ffa450edef68master
| @@ -161,6 +161,8 @@ Other changes: | |||
| * <tstamp> now supports a new "prefix" attribute to prefix properties set. | |||
| * you can now specify the -sourcepath for <javac> explicitly. | |||
| Changes from Ant 1.4 to Ant 1.4.1 | |||
| =========================================== | |||
| @@ -116,6 +116,11 @@ invoking the compiler.</p> | |||
| <td valign="top">the classpath to use.</td> | |||
| <td align="center" valign="top">No</td> | |||
| </tr> | |||
| <tr> | |||
| <td valign="top">sourcepath</td> | |||
| <td valign="top">the sourcepath to use; defaults to the value of the srcdir attribute (or <code><src></code> elements).</td> | |||
| <td align="center" valign="top">No</td> | |||
| </tr> | |||
| <tr> | |||
| <td valign="top">bootclasspath</td> | |||
| <td valign="top">location of bootstrap class files.</td> | |||
| @@ -127,6 +132,12 @@ invoking the compiler.</p> | |||
| <a href="../using.html#references">reference</a> to a PATH defined elsewhere.</td> | |||
| <td align="center" valign="top">No</td> | |||
| </tr> | |||
| <tr> | |||
| <td valign="top">sourcepathref</td> | |||
| <td valign="top">the sourcepath to use, given as a | |||
| <a href="../using.html#references">reference</a> to a PATH defined elsewhere.</td> | |||
| <td align="center" valign="top">No</td> | |||
| </tr> | |||
| <tr> | |||
| <td valign="top">bootclasspathref</td> | |||
| <td valign="top">location of bootstrap class files, given as a | |||
| @@ -255,14 +266,16 @@ supports all attributes of <code><fileset></code> | |||
| (<code>dir</code> becomes <code>srcdir</code>) as well as the nested | |||
| <code><include></code>, <code><exclude></code> and | |||
| <code><patternset></code> elements.</p> | |||
| <h4><code>src</code>, <code>classpath</code>, <code>bootclasspath</code> and <code>extdirs</code></h4> | |||
| <h4><code>src</code>, <code>classpath</code>, <code>sourcepath</code>, | |||
| <code>bootclasspath</code> and <code>extdirs</code></h4> | |||
| <p><code>Javac</code>'s <i>srcdir</i>, <i>classpath</i>, | |||
| <i>bootclasspath</i> and <i>extdirs</i> attributes are <a | |||
| <i>sourcepath</i>, <i>bootclasspath</i> and <i>extdirs</i> attributes are <a | |||
| href="../using.html#path">path-like structures</a> and can also be set via nested | |||
| <code><src></code>, | |||
| <code><classpath></code>, | |||
| <code><bootclasspath></code> and | |||
| <code><extdirs></code> elements, respectively.</p> | |||
| <code><src></code>, | |||
| <code><classpath></code>, | |||
| <code><sourcepath></code>, | |||
| <code><bootclasspath></code> and | |||
| <code><extdirs></code> elements, respectively.</p> | |||
| <h4>compilerarg</h4> | |||
| @@ -425,7 +438,7 @@ build.compiler.warnings is "true" while all others are "false&quo | |||
| </tr> | |||
| </table> | |||
| <hr> | |||
| <p align="center">Copyright © 2001 Apache Software Foundation. All rights | |||
| <p align="center">Copyright © 2001-2002 Apache Software Foundation. All rights | |||
| Reserved.</p> | |||
| </body> | |||
| @@ -111,6 +111,7 @@ public class Javac extends MatchingTask { | |||
| private Path src; | |||
| private File destDir; | |||
| private Path compileClasspath; | |||
| private Path compileSourcepath; | |||
| private String encoding; | |||
| private boolean debug = false; | |||
| private boolean optimize = false; | |||
| @@ -222,6 +223,39 @@ public class Javac extends MatchingTask { | |||
| return destDir; | |||
| } | |||
| /** | |||
| * Set the sourcepath to be used for this compilation. | |||
| */ | |||
| public void setSourcepath(Path sourcepath) { | |||
| if (compileSourcepath == null) { | |||
| compileSourcepath = sourcepath; | |||
| } else { | |||
| compileSourcepath.append(sourcepath); | |||
| } | |||
| } | |||
| /** Gets the sourcepath to be used for this compilation. */ | |||
| public Path getSourcepath() { | |||
| return compileSourcepath; | |||
| } | |||
| /** | |||
| * Maybe creates a nested sourcepath element. | |||
| */ | |||
| public Path createSourcepath() { | |||
| if (compileSourcepath == null) { | |||
| compileSourcepath = new Path(project); | |||
| } | |||
| return compileSourcepath.createPath(); | |||
| } | |||
| /** | |||
| * Adds a reference to a CLASSPATH defined elsewhere. | |||
| */ | |||
| public void setSourcepathRef(Reference r) { | |||
| createSourcepath().setRefid(r); | |||
| } | |||
| /** | |||
| * Set the classpath to be used for this compilation. | |||
| */ | |||
| @@ -1,7 +1,7 @@ | |||
| /* | |||
| * The Apache Software License, Version 1.1 | |||
| * | |||
| * Copyright (c) 2001 The Apache Software Foundation. All rights | |||
| * Copyright (c) 2001-2002 The Apache Software Foundation. All rights | |||
| * reserved. | |||
| * | |||
| * Redistribution and use in source and binary forms, with or without | |||
| @@ -97,6 +97,7 @@ public abstract class DefaultCompilerAdapter implements CompilerAdapter { | |||
| protected Path bootclasspath; | |||
| protected Path extdirs; | |||
| protected Path compileClasspath; | |||
| protected Path compileSourcepath; | |||
| protected Project project; | |||
| protected Location location; | |||
| protected boolean includeAntRuntime; | |||
| @@ -125,6 +126,7 @@ public abstract class DefaultCompilerAdapter implements CompilerAdapter { | |||
| extdirs = attributes.getExtdirs(); | |||
| compileList = attributes.getFileList(); | |||
| compileClasspath = attributes.getClasspath(); | |||
| compileSourcepath = attributes.getSourcepath(); | |||
| project = attributes.getProject(); | |||
| location = attributes.getLocation(); | |||
| includeAntRuntime = attributes.getIncludeantruntime(); | |||
| @@ -184,6 +186,14 @@ public abstract class DefaultCompilerAdapter implements CompilerAdapter { | |||
| protected Commandline setupJavacCommandlineSwitches(Commandline cmd, | |||
| boolean useDebugLevel) { | |||
| Path classpath = getCompileClasspath(); | |||
| // 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; | |||
| } | |||
| // we cannot be using Java 1.0 when forking, so we only have to | |||
| // distinguish between Java 1.1, and Java 1.2 and higher, as Java 1.1 | |||
| @@ -237,12 +247,15 @@ public abstract class DefaultCompilerAdapter implements CompilerAdapter { | |||
| cp.addExtdirs(extdirs); | |||
| } | |||
| cp.append(classpath); | |||
| cp.append(src); | |||
| cp.append(sourcepath); | |||
| cmd.createArgument().setPath(cp); | |||
| } else { | |||
| cmd.createArgument().setPath(classpath); | |||
| cmd.createArgument().setValue("-sourcepath"); | |||
| cmd.createArgument().setPath(src); | |||
| // If the buildfile specifies sourcepath="", then don't output any sourcepath. | |||
| if (sourcepath.size() > 0) { | |||
| cmd.createArgument().setValue("-sourcepath"); | |||
| cmd.createArgument().setPath(sourcepath); | |||
| } | |||
| if (target != null) { | |||
| cmd.createArgument().setValue("-target"); | |||
| cmd.createArgument().setValue(target); | |||