You can use "if" from ant-contrib: http://ant-contrib.sourceforge.net/tasks/tasks/if.html
<if><isset property="doit"/>
   <then><antcall>....</antcall></then>
</if>
All possible "if" conditions are here: http://ant.apache.org/manual/CoreTasks/conditions.html

Hope it helps,
Dmitri.

Cyril Sagan wrote:
Our build script needs to run an arbitrary *group* of targets based on
a single property.  Can you help me find a clean way to do this?

Here's an "almost solution" which illustrates what I'd like to
accomplish:

    <target name="all" depends="init, decide_to_run_group, wrapper" />

    <target name="decide_to_run_group">
        <condition property="doit" value="true">
            <some-boolean-test/>
        </condition>
    </target>

    <target name="wrapper" if="doit">
        <antcall>
            <target name="A" />
            <target name="B" />
            <target name="C" />
            <target name="D" />
        </antcall>
    </target>


This does not work.  The problem is that any properties set in the
<antcall>'d targets will not be visible in the calling environment.
Targets A,B,C,etc -- not all of which I control, so I cannot
restructure -- may have side effects, setting state in properties that
I need to have access to.

Regarding the "<antcall> almost solution", I see that there are ways
to pass properties "down to" <antcall>, but I do not know of a clean
way to "pass back".  I found a year+ old question on ant-dev asking
about this, but never saw an answer.

In any case, we aren't set on using (enhancing?) <antcall>, it was
just close to a solution.

Goal is to group the set of targets.  I'm hoping to find a solution
less awkward than this:
    <target name="A" if="doit" ... />
    <target name="B" if="doit" ... />
    <target name="C" if="doit" ... />
    <target name="D" if="doit" ... />

Thanks for any suggestions.

--Cyril

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to