[MonoDevelop] Cross platform build strategy

Rafael Teixeira monoman at gmail.com
Tue May 31 13:34:14 EDT 2005


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!


More information about the Monodevelop-list mailing list