[MonoDevelop] Cross platform build strategy

Todd Berman tberman at off.net
Wed May 25 14:27:51 EDT 2005


On Wed, 2005-05-25 at 12:12 -0500, Jayme wrote:
> Hi John - thanks for your comments!
> 
> Well just for kicks I created NAnt scripts for MonoDevelop.Dock,
> ICSharpCode.SharpAssembly, ICSharpCode,SharpRefactory,
> MonoDevelop.Core, and MonoDevelop.Gui.Utils (until I ran into the
> dependency on Gnome-Sharp which isn't included in mono on windows) and
> these all build and run the tests flawlessly under 1.1.7 on Windows. 
> 
> I've been writing tasks for NAnt for almost 4 years now and have used
> it on two commercial projects at the companies I've worked as a
> software architect for and I can tell you there are alot of great
> people on the NAnt  project that Microsoft basically ignored when they
> started the MSBuild stuff. While MSBuild is cool because Microsoft has
> finally decided to "wake up" and support a standard file format, the
> reality is Whidbey is still a while away, the community (as usual) is
> who innovated here in the first place (by porting Ant to .NET) and
> there are over 80 tasks available for NAnt that do all kinds of things
> that Microsoft won't have out the shoot (because of competitive
> conflict of interest) such as support for the mono-specific parameters
> of gcsc, subversion support, and oppenoffice etc.
> 
> I hate to get into a religious discussion here but I will point out a
> couple things. NAnt is available today and if Monodevelop used it I
> can see the current NAnt developers being more than happy to test on
> mono (and other platforms) even more rigorously then they already do.
> Also since MSBuild and NAnt both use XML files, you can create an XSL
> stylesheet that will convert from one format to another should MSBuild
> become stable and released and have enough tasks to want to switch.
> Some custom tasks like C# script etc. would have to be converted
> manually, but I can't see that being a reason to not use it.
> 

Where can I download a copy of NAnt that works with mono 1.1.7, the
couple times I have tried I have been very unsucessful.

Like it or not, installing auto* is far far easier than installing NAnt,
and until it becomes *easier* to install auto* than NAnt, I don't see
MonoDevelop switching.

As much as you may think that moving to NAnt makes MD easier to build,
the sad fact is that it makes it easier for 10 people to build and
impossible for the rest.

In my experience with NAnt on mono, dating from the very very early mono
0.21 days to today, NAnt fails to function half the time, and when it
does, it is painfully slow compared to using auto*.


Now, to get to your original question about moving MD to Nant, I dont
think it is even a good idea, NAnt installation issues aside.

If you could explain what it gives us, maybe you could make a better
case, and IMO a svn-task that does the checkout, and the make seems
pretty lame as 'what it gives us'. I can write a 4 line shell script
that gives us exactly the same thing.

Considering that NAnt doesnt support things such as make dist, and make
dist-check, or any of the po/ integration that we do w/ intltool, etc.
We would be losing a lot of functionality.

And before you bring up that we could have all 3 build systems in the
tree (make, nant, and *.md[s|p]) i will stop you there. I am loathe to
introduce a second (.md[s|p]) and absolutely against introducing a
third.

So, just as a summary, until NAnt is

1) Easy to install, and runs 100% of the time
2) Able to do everything our current build scripts do, not just build,
but help w/ i18n, make dist, and make dist-check, support make run, and
make install.

there is no way I would even look into accepting this is a viable
change. That said, I wish you luck in getting NAnt to that stage.

--Todd



More information about the Monodevelop-list mailing list