diff options
author | Stefan Bodewig <bodewig@apache.org> | 2012-01-27 18:23:56 +0000 |
---|---|---|
committer | Stefan Bodewig <bodewig@apache.org> | 2012-01-27 18:23:56 +0000 |
commit | 132fb32522052091d672208e63b418926e297bb2 (patch) | |
tree | 9f05a959ad2a550b0bde162c1ae4f3a14028b319 /src/main/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java | |
parent | 43430b54130b76767f98236e0681ba9a8582d35f (diff) | |
download | ant-132fb32522052091d672208e63b418926e297bb2.tar.gz |
OpenJDK8 snaphot works, I have found a new class in java.lang.reflect and OpenJDK's javac defaults to -source 8. No, I don't like the code in DefaultCompilerAdapter either.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@1236803 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/main/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java')
-rw-r--r-- | src/main/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/src/main/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java b/src/main/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java index e129f02af..37e74913c 100644 --- a/src/main/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java +++ b/src/main/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java @@ -348,7 +348,7 @@ public abstract class DefaultCompilerAdapter } else { cmd.createArgument().setValue(source); } - } else if ((assumeJava15() || assumeJava16() || assumeJava17()) + } else if ((assumeJava15() || assumeJava16() || assumeJava17() || assumeJava18()) && attributes.getTarget() != null) { String t = attributes.getTarget(); if (t.equals("1.1") || t.equals("1.2") || t.equals("1.3") @@ -360,10 +360,15 @@ public abstract class DefaultCompilerAdapter } setImplicitSourceSwitch((assumeJava15() || assumeJava16()) ? "1.5 in JDK 1.5 and 1.6" - : "1.7 in JDK 1.7", + : (assumeJava17() + ? "1.7 in JDK 1.7" + : "1.8 in JDK 1.8"), cmd, t, s); } else if (assumeJava17() && (t.equals("1.5") || t.equals("1.6"))) { setImplicitSourceSwitch("1.7 in JDK 1.7", cmd, t, t); + } else if (assumeJava18() && + (t.equals("1.5") || t.equals("1.6") || t.equals("1.7"))) { + setImplicitSourceSwitch("1.8 in JDK 1.8", cmd, t, t); } } return cmd; @@ -638,6 +643,21 @@ public abstract class DefaultCompilerAdapter } /** + * Shall we assume JDK 1.8 command line switches? + * @return true if JDK 1.8 + * @since Ant 1.8.3 + */ + protected boolean assumeJava18() { + return "javac1.8".equals(attributes.getCompilerVersion()) + || ("classic".equals(attributes.getCompilerVersion()) + && JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_8)) + || ("modern".equals(attributes.getCompilerVersion()) + && JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_8)) + || ("extJavac".equals(attributes.getCompilerVersion()) + && JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_8)); + } + + /** * Combines a user specified bootclasspath with the system * bootclasspath taking build.sysclasspath into account. * |