Re: default value for configurable bootclasspath in javac
[email protected] Mon, 19 Apr 2021 11:23:53 +0300
| Newsgroups | gmane.comp.jakarta.ant.user |
|---|---|
| Message-ID | <[email protected]> |
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.
>