[MonoDevelop] Cross platform build strategy

Jayme jayme.edwards at gmail.com
Tue May 31 11:27:04 EDT 2005


Hey Todd,

I was playing around with Monodevelop on Ubuntu this weekend and trying to 
get my head around more details of its current build process and where you 
guys are going with the product. Your comment on "if you want Monodevelop to 
run on Windows, grab an editor and get started" was thought provoking. I 
know what you are saying but it would seem like if the goal of MD is 
currently to only run on linux, there was (as you alluded to) alot of 
decision making that has been done in the project's architecture and 
build/deploy process selecting tools that work well with linux and not all 
platforms. 

My first assumption that older MD builds ran on Windows and that the current 
ones just weren't ready yet for win32 was obviously wrong :). When I had 
this mistaken impression I thought NAnt made sense because it would make 
things (in my mind) easier to build and test under several OS's to ensure 
consistency without having to load alot of stuff like cygwin or other *nix 
emulation environment things. This would help me and some other windows C# 
developers contribute code back to the project easier, but I know it's not a 
"fix all" for all people.

Knowing win32 (or mac osx for that matter?) support is not really a project 
"goal", I am not sure if it would even make sense for me to try to get it 
building on win32 with all the tools you guys probably rely on that are 
linux specific. Wheter it makes sense or not though, I would be curious what 
these platform-tying issues are if it's not too much of a pain for you to 
maybe forward me some emails or anything that other people you mentioned who 
ran into this stuff found while trying to do the same thing. Maybe the stuff 
that needs to be ported isn't as significant as I think it is and I still 
can help with some of this - I just don't know yet how extensive these 
changes are based on my current knowledge of the build process.

I guess from a "user" standpoint the problem right now is that if I want to 
create a C# software project that is targeting mono to run on multiple 
platforms (lets say an ASP.NET <http://ASP.NET> app or winforms product) and 
I use an IDE like MD to create my "solution / project" file under linux, 
when trying to compile that same code on another platform, that "solution / 
project" file I created in MD now does nothing for me and I need to create a 
new one (for instance for SharpDevelop, Visual Studio .NET, or XDevelop) 
when I build on something other than linux. This creates a problem because 
if I have several project team members who use different platforms we have 
to maintain multiple project / build technology formats (e.g. I just added 3 
files, can you please add these to the other 2 IDE's project files and check 
them back in). I know this is part at least of what you were talking about 
when you complained about having to maintain "yet another build format" with 
NAnt.

This is just my opinion, but the IDE for someone like me is just at tool for 
getting code from source control, editing it, and debugging. If IDEs used a 
a platform-neutral project format (such as NAnt, or maybe some other 
pluggable build environment I've yet to try) to determine which C# files are 
actually in the project, how to build them, and which executable to debug - 
but actually called into a platform-neutral build environment to do the real 
compilation, this would seem to make managing cross-platform mono projects 
alot easier. I can build consistently on every platform but the IDE only 
comes into the picture if I need to edit code or debug.

I know with being focused on MD you probably are much more concerned with 
getting the code to just work under linux let alone these issues I'm raising 
so I apologize for not taking that into more consideration when reading your 
initial feedback. I really do think you guys are doing a great job with what 
you have created and this is part of why I am so seriously trying to factor 
it into the grand scheme of how viable mono as a commercial platform for 
applications I build over the next several years at my current employer is. 
I have had no problem giving code back to open source projects when it helps 
me ship product or my build process depends on it and would be glad to give 
anything I create back that affects MD to help achieve these goals if I can 
understand and see that MD's goals are inline with where I want to go etc.

-Jayme

On 5/26/05, Todd Berman <tberman at off.net> wrote:
> 
> On Thu, 2005-05-26 at 14:59 -0500, Jayme wrote:
> > Alright...
> >
> > Well if it doesn't make sense to switch build environments, I guess I
> > will just watch for when you guys get it building on windows and check
> > it out instead of working on getting the build to be more "windows
> > friendly" first instead. I can tell you with a high degree of
> > confidence that the way it currently builds will probably be painful
> > for windows users to setup compared to nant which is equal burden
> > (minimal) on all platforms but at least, at that point, it will build
> > at all.
> >
> > -Jayme
> 
> 
> I don't think that anyone is currently working on getting MonoDevelop
> working on windows.
> 
> Maybe there is some lack of understanding here. MonoDevelop is a 100%
> community driven project, people work on whatever they want. Right now,
> there seem to be no contributors who are interested in seeing
> MonoDevelop work on win32. As with everything else that MonoDevelop
> could do, it is something the existing MonoDevelop team would love to
> see, and something they would help as best as possible, and accept
> patches for, but at this time, it doesn't seem that anyone is interested
> in doing it.
> 
> This is how opensource works, if you want MonoDevelop to run on windows,
> then grab an editor and get started, I can help point you in the right
> direction (stuff like talking to Zac about what he got to, and pointing
> you into the known problem areas inside the code for running on win32)
> 
> --Todd
> 
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://galactus.ximian.com/pipermail/monodevelop-list/attachments/20050531/70b8ba16/attachment.html


More information about the Monodevelop-list mailing list