|
|
@@ -77,6 +77,8 @@ import java.util.*; |
|
|
|
* <li>debug |
|
|
|
* <li>encoding |
|
|
|
* <li>target |
|
|
|
* <li>depend |
|
|
|
* <li>vebose |
|
|
|
* </ul> |
|
|
|
* Of these arguments, the <b>sourcedir</b> and <b>destdir</b> are required. |
|
|
|
* <p> |
|
|
@@ -105,6 +107,8 @@ public class Javac extends MatchingTask { |
|
|
|
private boolean debug = false; |
|
|
|
private boolean optimize = false; |
|
|
|
private boolean deprecation = false; |
|
|
|
private boolean depend = false; |
|
|
|
private boolean verbose = false; |
|
|
|
private String target; |
|
|
|
private Path bootclasspath; |
|
|
|
private Path extdirs; |
|
|
@@ -251,6 +255,20 @@ public class Javac extends MatchingTask { |
|
|
|
this.optimize = optimize; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* Set the depend flag. |
|
|
|
*/ |
|
|
|
public void setDepend(boolean depend) { |
|
|
|
this.depend = depend; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* Set the verbose flag. |
|
|
|
*/ |
|
|
|
public void setVerbose(boolean verbose) { |
|
|
|
this.verbose = verbose; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* Sets the target VM that the classes will be compiled for. Valid |
|
|
|
* strings are "1.1", "1.2", and "1.3". |
|
|
@@ -522,6 +540,21 @@ public class Javac extends MatchingTask { |
|
|
|
cmd.createArgument().setPath(extdirs); |
|
|
|
} |
|
|
|
|
|
|
|
if (depend) { |
|
|
|
if (Project.getJavaVersion().startsWith("1.1")) { |
|
|
|
cmd.createArgument().setValue("-depend"); |
|
|
|
} else if (Project.getJavaVersion().startsWith("1.2")) { |
|
|
|
cmd.createArgument().setValue("-Xdepend"); |
|
|
|
} else { |
|
|
|
log("depend attribute is not supported by the modern compiler", |
|
|
|
Project.MSG_WARN); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (verbose) { |
|
|
|
cmd.createArgument().setValue("-verbose"); |
|
|
|
} |
|
|
|
|
|
|
|
logAndAddFilesToCompile(cmd); |
|
|
|
return cmd; |
|
|
|
} |
|
|
@@ -608,7 +641,17 @@ public class Javac extends MatchingTask { |
|
|
|
if (optimize) { |
|
|
|
cmd.createArgument().setValue("-O"); |
|
|
|
} |
|
|
|
|
|
|
|
if (verbose) { |
|
|
|
cmd.createArgument().setValue("-verbose"); |
|
|
|
} |
|
|
|
if (depend) { |
|
|
|
cmd.createArgument().setValue("-depend"); |
|
|
|
String fullDependProperty = project.getProperty("build.compiler.fulldepend"); |
|
|
|
if (fullDependProperty != null |
|
|
|
&& Project.toBoolean(fullDependProperty)) { |
|
|
|
cmd.createArgument().setValue("+F"); |
|
|
|
} |
|
|
|
} |
|
|
|
/** |
|
|
|
* XXX |
|
|
|
* Perhaps we shouldn't use properties for these |
|
|
@@ -623,10 +666,7 @@ public class Javac extends MatchingTask { |
|
|
|
* to the place, where the error occured. |
|
|
|
*/ |
|
|
|
String emacsProperty = project.getProperty("build.compiler.emacs"); |
|
|
|
if (emacsProperty != null && |
|
|
|
(emacsProperty.equalsIgnoreCase("on") || |
|
|
|
emacsProperty.equalsIgnoreCase("true")) |
|
|
|
) { |
|
|
|
if (emacsProperty != null && Project.toBoolean(emacsProperty)) { |
|
|
|
cmd.createArgument().setValue("+E"); |
|
|
|
} |
|
|
|
|
|
|
@@ -637,10 +677,7 @@ public class Javac extends MatchingTask { |
|
|
|
* warning can be pretty annoying. |
|
|
|
*/ |
|
|
|
String warningsProperty = project.getProperty("build.compiler.warnings"); |
|
|
|
if (warningsProperty != null && |
|
|
|
(warningsProperty.equalsIgnoreCase("off") || |
|
|
|
warningsProperty.equalsIgnoreCase("false")) |
|
|
|
) { |
|
|
|
if (warningsProperty != null && !Project.toBoolean(warningsProperty)) { |
|
|
|
cmd.createArgument().setValue("-nowarn"); |
|
|
|
} |
|
|
|
|
|
|
@@ -648,10 +685,7 @@ public class Javac extends MatchingTask { |
|
|
|
* Jikes can issue pedantic warnings. |
|
|
|
*/ |
|
|
|
String pedanticProperty = project.getProperty("build.compiler.pedantic"); |
|
|
|
if (pedanticProperty != null && |
|
|
|
(pedanticProperty.equalsIgnoreCase("on") || |
|
|
|
pedanticProperty.equalsIgnoreCase("true")) |
|
|
|
) { |
|
|
|
if (pedanticProperty != null && Project.toBoolean(pedanticProperty)) { |
|
|
|
cmd.createArgument().setValue("+P"); |
|
|
|
} |
|
|
|
|
|
|
|