To solve my dependency order problem, I set my build file to follow a text file with the vbp paths and names (in build order). I've included a script snippet that works with the vbp.build.include file I posted earlier.
Here is a quick explanation... To make everythign, the make task is called (the splash.setdate is another task that edits the common splash screen with current build time and version info) that set's a property for what target I want called in vbp.build.include and then calls the projects task. The projects task loops through the projects.txt file first checking to see if I have set the property vbpname to build only one project or build them all. It then calls the target property ${target} in vb6.build.include with the vbp from the text file. This allows me to control which projects are being built and in what order with a text file (easier to explain to other people than a xml nant build file :-) My make task in vb6.build.include (attached to this email) has grown, in part because the NAnt vb6 task didn't accept conditional compiler arguments (I've been meaning to add that :-) And, lately, to solve a problem with CLSID's we have run across (where the version compatible component cannot be built with binary comopatibly any more). I have been trying to find the time to create real tasks and submit them for inclusion, but it's been hard to find extra time to do this. At the moment, we are working on converting our installations to MSI files either with nant or, most likely, a mixture of nant and wise for windows installer. There are also some odd cases that most people wouldn't need (before we started using nant, the vbp's would place there build targets in one directory, so I have checks for that) so hopefully the scripts are readable ;-) John Cole ------------------------------------------------------------ <include buildfile="vbp.build.include" /> <property name="projectfile" value="projects.txt" /> <property name="vbpname" value="" /> <target name="make" depends="splash.setdate"> <property name="target" value="make" /> <call target="projects" /> </target> <target name="projects"> <foreach item="Line" in="${projectfile}" delim="," property="vbp,y"> <!-- check to see if we process all or only selected projects --> <if test="${vbpname == ''}"> <property name="project.module" value="${path::get-directory-name(vbp)}" /> <echo message="${project.module}" /> <nant target="${target}" inheritall="true" buildfile="vb6.build.include" /> </if> <if test="${string::index-of(vbp, vbpname) > 0}"> <property name="project.module" value="${path::get-directory-name(vbp)}" /> <echo message="${project.module}" /> <nant target="${target}" inheritall="true" buildfile="vb6.build.include" /> </if> </foreach> </target> ----------------------------------------------------------------------- -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Subbu Balakrishnan Sent: Monday, November 01, 2004 11:21 PM To: '[EMAIL PROTECTED]'; John Cole; '[EMAIL PROTECTED]' Cc: '[EMAIL PROTECTED]'; '[EMAIL PROTECTED]' Subject: Re: [Nant-users] VB6 build dependencies Quite by accident, I came upon the John's vbp.build.include and Els' (Peter's?) C# code to create a build order. Gents, can't thank you enough. I've had some trouble getting started with this and these two pieces of code will be an immense help. Christian, any joy with your vb6 build issues? Regards Subbu ------------------------------------------------------- This SF.Net email is sponsored by: Sybase ASE Linux Express Edition - download now for FREE LinuxWorld Reader's Choice Award Winner for best database on Linux. http://ads.osdn.com/?ad_id=5588&alloc_id=12065&op=click _______________________________________________ Nant-users mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/nant-users ------------------------------------- This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error please notify the system manager. This message contains confidential information and is intended only for the individual named. If you are not the named addressee you should not disseminate, distribute or copy this e-mail.
vb6.build.include
Description: Binary data