Our current design has a top-level wrapper NAnt file that deals with source
code control, particularly clean builds, and then forwards the targets,
using the <nant> task, to a subsidiary NAnt file that does the actually
building.  The primary reason for this is so that we're absolutely
guaranteed that the lower level build file, which is the one used for
routine use, never, ever touches or changes the source code configuration,
never deletes or updates source files, etc.  That's easy to do by making
sure the source code system is never called from that file.

The question is whether the calls from the top level file can be optimized.
Right now, if specify "build test kit" as the targets for the top level
file, that turns into three separate calls on the lower level file.  And of
course, the test and kit targets depend upon the build target, so the build
target gets called three times instead of once.  This was a perfectly
reasonable architecture for make, but not for NAnt.  That's not only because
of all the extra logging without doing very much, but because we still can't
use the NAnt solution task, and firing up three separate devenv builds is
slow.

The first approach that comes to my mind is to somehow have the upper level
NAnt file assemble the target list, and then when all the targets have been
addressed, it actually makes a single call to the lower level NAnt file.
But I can't think of any way to do that within NAnt's current design.
Another alternative is to partition the lower level NAnt file so that there
is one project wrapper file that includes the body of the project from a
separate (non-project) NAnt include file.  That way both the top level and
lower level files could include the same content, and then the top level
could be changed to invoke the appropriate targets directly instead of
through a subsidiary NAnt call, thus allowing NAnt to remove redundant
target executions.  This is probably easier to do right now.

I'm wondering whether anyone has any other ideas for approaching this
problem, short of redesigning our entire build scheme.

Thanks,

Gary



-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click
_______________________________________________
Nant-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-users

Reply via email to