gert, thanks for sticking w/ me on this.

> > your build example could be done using call+force just as 
> readily in 
> > the past as you have it now.
> 
> feel free to provide a sample to convince me, but I don't 
> think we will be change the new behaviour :-)

here's your example:

        <target name="clean" />
        <target name="build-assembly" />
        <target name="build-docs" />

        <target name="debug" depends="clean, build-assembly, build-docs"
/> 
        <target name="release" depends="clean, build-assembly,
build-docs" />

        <target name="build">
            <call target="debug" />
            <call target="release" />
        </target>

#1, i don't see how your example works.  there's no diff bet. target
debug and target release, unless they init props in their bodies, in
which case the depends= run too soon.  what am i missing?

#2 here's the equiv using call+force.  just as legible, if slightly more
verbose.

        <target name="clean" />
        <target name="build-assembly" />
        <target name="build-docs" />

        <target name="doBuild" > 
          <call force="true" target="clean"  />
          <call force="true" target="build-assembly" />
          <call force="true" target="build-docs"  />
        </target>

        <target name="build">
            <call target="initForDebug" />
            <call target="DoBuild" force="true" />
            <call target="initForRelease" />
            <call target="DoBuild" force="true" />
        </target>       

> 
> If you send me a simple example of your build file, I'd love 
> to help you out ...

hopefully, the following example isn't too verbose to get the points
across that 
1) i have to use CALL to execute dodo*
2) in the new world order setProps will run several times altho it
should only run once
3) i need setProps dependency so i can unit-test dodo1, dodo2, ...

<target name="setProps" />

<target name="dodo1" depends="setProps" />
<target name="dodo2" depends="setProps" />
<target name="dodo3" depends="setProps" />

<target name="figure-it-all-out" >
    <property name="do1" value="false" />
    <property name="do2" value="false" />
    <property name="do3" value="false" />

    <if uptodatefile="${File.App.Leap.Marker}"  >
      <comparefiles>
        <includes name="${Dir.Leap.Xml}**.xml" />
        <includes name="${Dir.Leap.Gsl}**.gsl" />
        <includes name="${Dir.Leap.Commands}**.build" />
        <includes name="${Dir.App}**.build" />
      </comparefiles>
      <property name="do1" value="true" />
      <property name="do2" value="true" />
    </if>
    <if uptodatefile="${File.App.Leap.Marker}"  >
      <comparefiles>
        <includes name="${Dir.Leap.Sql}**.sql" />
        <includes name="${File.Version.Def.Spec}" />
      </comparefiles>
      <property name="do2" value="true" />
      <property name="do3" value="true" />
    </if>

    <call if="${do1}" target="dodo1" />
    <call if="${do2}" target="dodo2" />
    <call if="${do3}" target="dodo3" />
...
</target>





-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
_______________________________________________
Nant-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-users

Reply via email to