On 2/14/07, Sam Hendley <[EMAIL PROTECTED]> wrote:
How do you all use <uptodate> in your build scripts? I am using it to see if a build should be performed. I am getting the correct value in the property specified by uptodate but I am having some trouble determining the correct way to structure my build file to avoid using antcall's. I have it working right now with the DoBuild target and antcall but it irks me that I can't see the better way to do this (what did people do before antcall?), that and I don't like the overhead of using antcall. My first thought was to add the unless clause (unless="noBuildNecessary") to the main Build target, but that obviously doesn't work as the unless/if don't get evaluated until after the depends targets have already run. So this seems to indicate that I need to add the unless clause to all the other targets in the Build list so they don't run at all. The problem there is I am already using unless for some of those targets and it appears that I can't use a list of properties in the unless clauses. The third way I thought to do this is to use something like <fail> if no build is needed but this would be reported to the caller (cruisecontrol) as a failure which wouldn't work. Is there a <success> equivilant to fail as I could use that in the UpdateAndCheck target and keep the rest of the targets clean of the unless tags. Thanks Sam<target name="Build" depends="GetConfiguration,GetSources,GetResources,CreateJadFile,Compile, Obfuscate,UpdateJadFile,CheckFail,MakeSiblings" /> <target name="DoBuild" unless="noBuildNecessary"> <antcall target="Build" /> </target> <target name="UpdateAndCheck"> <UpdateAllSVN /> <GetUpToDate property="noBuildNecessary" /> <echo message="noBuildNecessary? ${noBuildNecessary}" /> </target> <target name="BuildIfNecessary" depends="GetConfiguration,UpdateAndCheck,DoBuild" />
i don't know that you need to use the 'uptodate' task if you're using your build with CruiseControl. CruiseControl is smart in that it only performs a build if changes have occurred. i'm not sure if it uses the 'uptodate' task internally, or has some other mechanism. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
