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, basini...@gmail.com 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: user-unsubscr...@ant.apache.org For additional commands, e-mail: user-h...@ant.apache.org