Browse Source

Make handling of javac -source easier. Simply make JDK 1.4.1's

interface upwards compatible.


git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@276977 13f79535-47bb-0310-9956-ffa450edef68
master
Stefan Bodewig 20 years ago
parent
commit
f993e95b32
2 changed files with 30 additions and 28 deletions
  1. +7
    -27
      build.xml
  2. +23
    -1
      src/main/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java

+ 7
- 27
build.xml View File

@@ -374,28 +374,6 @@
<exclude name="*.cgi"/>
</patternset>

<!--
===================================================================
Set up a preset def for javac depending on
the java version
===================================================================
-->

<target name="javac.preset" depends="javac.preset.1.5+,javac.preset.1.5-"/>
<target name="javac.preset.1.5+" depends="check_for_optional_packages"
if="jdk1.5+">
<presetdef name="javac.preset">
<javac source="${javac.source}"/>
</presetdef>
</target>
<target name="javac.preset.1.5-" depends="check_for_optional_packages"
unless="jdk1.5+">
<presetdef name="javac.preset">
<javac/>
</presetdef>
</target>


<!--
===================================================================
Check to see what optional dependencies are available
@@ -642,17 +620,18 @@
===================================================================
-->
<target name="build"
depends="prepare, check_for_optional_packages, javac.preset"
depends="prepare, check_for_optional_packages"
description="--> compiles the source code">
<mkdir dir="${build.dir}"/>
<mkdir dir="${build.classes}"/>
<mkdir dir="${build.lib}"/>

<javac.preset srcdir="${java.dir}"
<javac srcdir="${java.dir}"
destdir="${build.classes}"
debug="${debug}"
deprecation="${deprecation}"
target="${javac.target}"
source="${javac.source}"
optimize="${optimize}" >
<classpath refid="classpath"/>

@@ -701,7 +680,7 @@
</or>
</not>
</selector>
</javac.preset>
</javac>

<copy todir="${build.classes}">
<fileset dir="${java.dir}">
@@ -1406,15 +1385,16 @@
<target name="compile-tests" depends="build" if="junit.present">
<mkdir dir="${build.tests}"/>

<javac.preset srcdir="${tests.dir}"
<javac srcdir="${tests.dir}"
destdir="${build.tests}"
debug="${debug}"
target="${javac.target}"
source="${javac.source}"
deprecation="${deprecation}" >
<classpath refid="tests-classpath"/>

<selector refid="conditional-patterns"/>
</javac.preset>
</javac>

<!-- Used by AntlibTest.testAntlibResource: -->
<jar jarfile="${build.tests}/org/apache/tools/ant/taskdefs/test2-antlib.jar">


+ 23
- 1
src/main/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java View File

@@ -297,7 +297,15 @@ public abstract class DefaultCompilerAdapter implements CompilerAdapter {
setupJavacCommandlineSwitches(cmd, true);
if (attributes.getSource() != null && !assumeJava13()) {
cmd.createArgument().setValue("-source");
cmd.createArgument().setValue(attributes.getSource());
String source = attributes.getSource();
if (assumeJava14() &&
(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
cmd.createArgument().setValue("1.3");
} else {
cmd.createArgument().setValue(source);
}
}
return cmd;
}
@@ -501,5 +509,19 @@ public abstract class DefaultCompilerAdapter implements CompilerAdapter {
&& JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_3));
}

/**
* Shall we assume JDK 1.4 command line switches?
* @since Ant 1.6.3
*/
protected boolean assumeJava14() {
return "javac1.4".equals(attributes.getCompilerVersion())
|| ("classic".equals(attributes.getCompilerVersion())
&& JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_4))
|| ("modern".equals(attributes.getCompilerVersion())
&& JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_4))
|| ("extJavac".equals(attributes.getCompilerVersion())
&& JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_4));
}

}


Loading…
Cancel
Save