summaryrefslogtreecommitdiff
path: root/src/main/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java
diff options
context:
space:
mode:
authorStefan Bodewig <bodewig@apache.org>2012-01-27 18:23:56 +0000
committerStefan Bodewig <bodewig@apache.org>2012-01-27 18:23:56 +0000
commit132fb32522052091d672208e63b418926e297bb2 (patch)
tree9f05a959ad2a550b0bde162c1ae4f3a14028b319 /src/main/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java
parent43430b54130b76767f98236e0681ba9a8582d35f (diff)
downloadant-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.java24
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.
*