I managed to solve the problem with a script:
<property name="javac.bootclasspath" value=""/>
<presetdef name="myjavac">
<javac source="1.7" target="1.7" includeantruntime="no">
</javac>
</presetdef>
<script id="myjavac_optional_attrs" language="javascript">
var bootclasspath = project.getProperty("javac.bootclasspath");
/* bootclasspath="" fails with Eclipse Compiler */
if (bootclasspath) {
var myjavacPreSetsWrapper =
org.apache.tools.ant.ComponentHelper.getComponentHelper(project).getAntTypeTable().get("myjavac").getPreSets().getWrapper();
myjavacPreSetsWrapper.setAttribute("bootclasspath",
bootclasspath);
}
</script>
On 14.04.2021 22:03, [email protected] wrote:
> Hi. I've got the following in my build xml:
>
> <property name="javac.bootclasspath" value="" />
>
> <presetdef name="myjavac">
> <javac source="1.7" target="1.7" includeantruntime="no"
> bootclasspath="${javac.bootclasspath}" >
> </javac>
> </presetdef>
>
> The idea is to not alter bootclasspath when the caller did not provide an
> explicit -Djavac.bootclasspath=...
> An empty string as the default value works fine with Sun Javac, but it fails
> with: <javac compiler="org.eclipse.jdt.core.JDTCompilerAdapter">
>
> [myjavac] The type java.lang.Double cannot be resolved. It is indirectly
> referenced from required .class files
> [myjavac] ----------
> [myjavac] 1 problem (1 error)
>
> Since the presetdef task does not support conditional attributes I'm asking
> for an advice on how to make it work.
>
> This is Ant 1.10.8 bundled with Eclipse.
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]