[MonoDevelop] Cross platform build strategy

Sijmen Mulder sjmulder at gmail.com
Tue May 31 13:56:18 EDT 2005


Hello,

When working on cross-platform applications, I often come across the
problem of not easily being able to compile my programs on different
systems (which do not run Linux). While this method may have these two
problems, I think it would be word the effort, and I'd like to help
out if needed.

On 5/31/05, Rafael Teixeira <monoman at gmail.com> wrote:
> I think that from summarizing your needs the best approach would be to
> have a MD builder, a console utility, detached from MD that takes
> .mds/.mdp files and just compiles them,  using platform-neutral
> managed code. I would refactor that part of MD into a library, called
> by MD and by this console 'mdbuild' (?).
> 
> The problems I see are:
> 
> 1-- .mds/.mdb files format aren't stable
> 2-- MD plugins may interfere (They need to follow some stricter design
> rules, like having no-UI, to be usable as nice 'tasks' in this build
> system).
> 
> Just some wild thoughts,
> 
> On 5/31/05, Jayme <jayme.edwards at gmail.com> wrote:
> > 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 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
> > >
> > >
> >
> >
> > _______________________________________________
> > Monodevelop-list mailing list
> > Monodevelop-list at lists.ximian.com
> > http://lists.ximian.com/mailman/listinfo/monodevelop-list
> >
> >
> >
> 
> 
> --
> Rafael "Monoman" Teixeira
> ---------------------------------------
> I'm trying to become a "Rosh Gadol" before my own eyes.
> See http://www.joelonsoftware.com/items/2004/12/06.html for enlightment.
> It hurts!
> _______________________________________________
> Monodevelop-list mailing list
> Monodevelop-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/monodevelop-list
> 


-- 
Sijmen Mulder


More information about the Monodevelop-list mailing list