I requested the feature because the <solution> task is the logical place
to do a clean operation since the solution already knows all the
intermediate and output files that are generated during a build.
Otherwise you have hand-code a 'clean' target in nant using <delete>
tasks that get all the intermediate and output files for a given
configration.  Do-able but, IMHO, messy.

Currently the way I am doing it is with properties.  Prior to using the
solution task, I was exec'ing devenv.com like so:

 <!-- 'debug' or 'release' -->
 <property name="project.config" value="debug" /> 

 <!-- '/build' or '/clean' or '/rebuild' --> 
 <property name="devenv.command" value="/build" /> 

I have some targets for changing the above properties which are really
just shortcuts for specifying them on the nant command line:

 <target name="release" >
   <property name="project.config" value="debug" /> 
 </target>

 <target name="clean" >
   <property name="devenv.command" value="/clean" /> 
 </target> 

 <target name="rebuild" >
    <property name="devenv.command" value="/rebuild" />  
 </target> 


Then I have a utility target that expects these properties to be set:

  <target name='build-solution'>
    <exec program='devenv.com'>
       <arg value='${devenv.solutionFile}' />
       <arg value='${devenv.command}' />
       <arg value='${project.config}' />
    </exec>
 </target>


And build targets look like:
<target name='all'>
   <property name="devenv.solutionFile" value="MySolution.sln" /> 
   <call target='build-solution'/>
</target>

So to build a debug version I type:
   nant all    or just   nant

To clean the debug version:
   nant clean all

To rebuild a release version:
   nant rebuild all
   

So, my request was for a feature to allow me to keep the same type of
structure when using the <solution> task without doing <if> tasks in all
my build files.  For example:

  <!-- 'build' or 'clean' or 'rebuild' -->
  <property name='solutionOp' value='build'/>

 <target name="clean" >
   <property name="solutionOp" value="clean" /> 
 </target> 

 <target name="rebuild" >
    <property name="solutionOp" value="rebuild" />  
 </target> 

 <target name='build-solution'>
    <solution solutionFile='${build-solution.solutionFile}' 
              op='${solutionOp}' 
              configuration='${project.config}'/>
 </target>

 <target name='all'>
     <property name="build-solution.solutionFile" value="MySolution.sln"
/> 
     <call target='build-solution'/>
 </target>  




> -----Original Message-----
> From: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] On Behalf 
> Of Nicholas Duane
> Sent: Wednesday, September 06, 2006 10:50 AM
> To: nant-users@lists.sourceforge.net
> Cc: [EMAIL PROTECTED]
> Subject: [NAnt-users] solution task: targets v.s. configuration
> 
> I know there has already been a discussion on adding another 
> attribute, 
> operation, so we can specify clean, build, rebuild.  From the 
> little bit 
> I've read so far (just started using nant) it appears that people are 
> equating targets to clean, build, and rebuild and using a property to 
> determine the configuration: debug or release.  Is this 
> correct?  Why would 
> the configuration not also equate to a target type?  
> Otherwise, if I want to 
> build both debug and release I have to have two nant entries (from my 
> cruisecontrol configuration) whereas if debug and release 
> were targets I 
> would only need one entry and could specify both targets.
> 
> So do people create debug and release targets?  Maybe something like:
> 
> <target name="debugclean" .../>
> <target name="debugbuild" .../>
> <target name="debugrebuild" .../>
> <target name="releaseclean" .../>
> <target name="releasebuild" .../>
> <target name="releaserebuild" .../>
> 
> Thanks,
> Nick
> 
> _________________________________________________________________
> Check the weather nationwide with MSN Search: Try it now!  
> http://search.msn.com/results.aspx?q=weather&FORM=WLMTAG
> 
> 
> --------------------------------------------------------------
> -----------
> Using Tomcat but need to do more? Need to support web 
> services, security?
> Get stuff done quickly with pre-integrated technology to make 
> your job easier
> Download IBM WebSphere Application Server v.1.0.1 based on 
> Apache Geronimo
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&;
> dat=121642
> _______________________________________________
> NAnt-users mailing list
> NAnt-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/nant-users
> 

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
NAnt-users mailing list
NAnt-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nant-users

Reply via email to