I have a pattern that is repeated several times, so I'm trying to extract it into separate tasks in a common build file. I think I'm running into problems because I'm trying to treat ant more like a functional language than it is.
In several places, I have targets that look like this <target name="generate-foo" depends="check-foo-up-to-date" unless="foo-up-to-date"> <do-generation param="foo"> <stuff value="foo" /> </do-generation> </target> <target name="check-foo-up-to-date"> <dependset> <!-- several srcfileset and targetfileset --> <targetfilelist dir="." files="foo-test-file" /> </dependset> <available file="foo-test-file" property="foo-up-to-date"/> </target> When ant tries to run generate-foo, it first runs check-foo-up-to-date, which sets foo-up-to-date if foo is up to date. If foo is up to date, the unless parameter means the generate-foo target isn't run and all is good. If I try to factor out the common parts, there are a few things that need to be parameterized, which prevents me from calling them with a simple depends attribute. Instead, I'm using antcall and the new targets look like <target name="generate-foo" depends="check-foo-up-to-date" unless="foo-up-to-date"> <antcall target="generate"> <param name="name" value="foo"/> </antcall> </target> <target name="check-foo-up-to-date"> <antcall target="check-up-to-date"> <param name="file" value="foo-test-file"/> <param name="property" value="foo-up-to-date"/> </antcall> </target> with generate and check-up-to-date being the new, generic tasks. This appears to work, except that foo-up-to-date doesn't get updated in the original project, only the project associated with the antcall. Is there a good way to get the property back to the original project? I could do it with files and available, but I'd like something simple to put into the multiple copies of check-*-up-to-date. Troy --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]