@@ -332,13 +332,12 @@ public abstract class DefaultCompilerAdapter implements CompilerAdapter {
String source = attributes.getSource();
if (source.equals("1.1") || source.equals("1.2")) {
// support for -source 1.1 and -source 1.2 has been
// added with JDK 1.4.2 - and isn't present in 1.5.0
// or 1.6.0 either
// added with JDK 1.4.2 - and isn't present in 1.5.0+
cmd.createArgument().setValue("1.3");
} else {
cmd.createArgument().setValue(source);
}
} else if ((assumeJava15() || assumeJava16())
} else if ((assumeJava15() || assumeJava16() || assumeJava17() )
&& attributes.getTarget() != null) {
String t = attributes.getTarget();
if (t.equals("1.1") || t.equals("1.2") || t.equals("1.3")
@@ -348,19 +347,12 @@ public abstract class DefaultCompilerAdapter implements CompilerAdapter {
// 1.5.0 doesn't support -source 1.1
s = "1.2";
}
attributes.log("", Project.MSG_WARN);
attributes.log(" WARNING", Project.MSG_WARN);
attributes.log("", Project.MSG_WARN);
attributes.log("The -source switch defaults to 1.5 in JDK 1.5 and 1.6.",
Project.MSG_WARN);
attributes.log("If you specify -target " + t
+ " you now must also specify -source " + s
+ ".", Project.MSG_WARN);
attributes.log("Ant will implicitly add -source " + s
+ " for you. Please change your build file.",
Project.MSG_WARN);
cmd.createArgument().setValue("-source");
cmd.createArgument().setValue(s);
setImplicitSourceSwitch((assumeJava15() || assumeJava16())
? "1.5 in JDK 1.5 and 1.6"
: "1.7 in JDK 1.7",
cmd, s, t);
} else if (assumeJava17() && (t.equals("1.5") || t.equals("1.6"))) {
setImplicitSourceSwitch("1.7 in JDK 1.7", cmd, t, t);
}
}
return cmd;
@@ -619,6 +611,21 @@ public abstract class DefaultCompilerAdapter implements CompilerAdapter {
&& JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_6));
}
/**
* Shall we assume JDK 1.7 command line switches?
* @return true if JDK 1.7
* @since Ant 1.8.2
*/
protected boolean assumeJava17() {
return "javac1.7".equals(attributes.getCompilerVersion())
|| ("classic".equals(attributes.getCompilerVersion())
&& JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_7))
|| ("modern".equals(attributes.getCompilerVersion())
&& JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_7))
|| ("extJavac".equals(attributes.getCompilerVersion())
&& JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_7));
}
/**
* Combines a user specified bootclasspath with the system
* bootclasspath taking build.sysclasspath into account.
@@ -647,5 +654,23 @@ public abstract class DefaultCompilerAdapter implements CompilerAdapter {
protected String getNoDebugArgument() {
return assumeJava11() ? null : "-g:none";
}
private void setImplicitSourceSwitch(String defaultDetails, Commandline cmd,
String target, String source) {
attributes.log("", Project.MSG_WARN);
attributes.log(" WARNING", Project.MSG_WARN);
attributes.log("", Project.MSG_WARN);
attributes.log("The -source switch defaults to " + defaultDetails + ".",
Project.MSG_WARN);
attributes.log("If you specify -target " + target
+ " you now must also specify -source " + source
+ ".", Project.MSG_WARN);
attributes.log("Ant will implicitly add -source " + source
+ " for you. Please change your build file.",
Project.MSG_WARN);
cmd.createArgument().setValue("-source");
cmd.createArgument().setValue(source);
}
}