Hi, Looks interesting - not that I know much about C# ;)
Just curious - you state it started as a learning project - how interested are you in continuing work on it? Would it be interesting to collaborate and see if we could gret at least the basic elements "standard"? BTW I believe ant now has C# tasks ;) At 11:03 23/4/01 -0700, Steve Loughran wrote: >I just thought I'd forward on an announcement (on the develop .net mail >list) about the first public release of an ant-like build tool for .net. > >"The first public version of XBuild has been released and is available at >http://www.hazware.com/. > >XBuild is an XML based build tool inspired by ANT (see >http://jakarta.apache.org/ant/index.html for more information). I >started with the ANT design and made some changes so as to leverage some >.NET functionality and wrote it in C#. This was done as an experiment to >learn .NET and C#, and to sort of kick the tires on the .NET framework. > >So I am now releasing the source code for anyone else to use and learn >from. Hopefully some brave souls will add more tasks (see ANT or XBuild >for info on what I mean by task) and this can get some momentum behind >it. > >This is version 1.0.1.3. > >Have fun. >David Buksbaum" > > >The xml file is very similar , a sample task could just as easily be handled >by ant as xbuild, which is kind of slick:- > > <target name="core"> > <echo message="Building Core." /> > > <csc targettype="library" outfile="xbcoreA.dll"> > <references> > ${standard.references} > ${nunit.bin}\NUnitCore.dll > </references> > > <source> > <includes files="*.cs" /> > <excludes files="XBuildLauncher.cs" /> > </source> > > <source> > <includes files="common/*.cs" /> > <includes files="nunit/*.cs" /> > <includes files="tasks/*.cs" /> > </source> > </csc> > </target> > >What is interesting is that the implementation used the .net metadata stuff >as means of describing all exported methods. Instead of setValue() methods, >you just mark up a variable and *somehow* the system uses that to build the >TOM/parse the build file. > > [TaskAttributeAttribute("warnaserror", ExpandText=false, Default=false)] > bool m_bWarnAsError; > > [TaskAttributeAttribute("warnlevel", ExpandText=false, Default=3)] > int m_nWarningLevel; > [TaskAttributeAttribute("baseaddress", ExpandText=false, >Default=0x10000000)] > long m_nBaseAddress; > >That isnt necessarily any simpler, but it may simplify other things (dynamic >doc generation, UI tools (which can see what the default value should be), >and the like. > >It's still a skinny first pass beta test; all the tasks are fairly >foundation (file movement, deletion, copy; echo ; csc), but it shows promise >as a way of getting .net development decoupled from VS.net without having to >resort to makefiles. It doesnt address deployment yet, except through >'copy', but if it does get used in .net land, then maybe more deployment >tasks will be added. Too bad there's no built in support for zip in .net >though. > >-Steve > > Cheers, Pete *-----------------------------------------------------* | "Faced with the choice between changing one's mind, | | and proving that there is no need to do so - almost | | everyone gets busy on the proof." | | - John Kenneth Galbraith | *-----------------------------------------------------*
