ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jesse Stockall <stock...@magma.ca>
Subject Re: Conditionally passing property to <ant>
Date Tue, 29 Apr 2003 13:42:37 GMT
On Tue, 2003-04-29 at 06:57, Christopher Lenz wrote:
> Hi folks,
> 
> I'd like to call another build file with a set of optional properties. 
> If defined, those properties point to directories. In addition, I cannot 
> use property inheritance.
> 
> The naive attempt
> 
>    <ant dir="${the.dir}" inheritAll="false">
>      <property name="mydir" value="${mydir}"/>
>    </ant>
> 
> works fine if 'mydir' has been defined, but of course fails when it 
> hasn't -- because the property is set to the literal ${mydir}. The 
> called script checks whether the property has been set, and only 
> executes some tasks if it has.
> 
> So what I'd need would basically be:
> 
>    <ant dir="${the.dir}" inheritAll="false">
>      <property name="mydir" value="${mydir}" if="mydir"/>
>    </ant>
> 
> Any ideas?
> 

In your main build file have 3 targets

<target name="callantwithdir" if="mydir">
  <ant dir="${the.dir}" inheritAll="false">
    <property name="mydir" value="${mydir}"/>
  </ant>
</target>

and

<target name="callantnodir" unless="mydir">
  <ant dir="${the.dir}" inheritAll="false"/>
</target>

and

<target name="callant" depends="callantwithdir, callantnodir"/>

Use the 'callant' target and it will execute other build file with the
desired properties. 

-- 
Jesse Stockall <stockall@magma.ca>


Mime
View raw message