[MonoDevelop] Cross platform build strategy

Todd Berman tberman at off.net
Tue May 31 14:59:46 EDT 2005


On Tue, 2005-05-31 at 13:12 -0500, Jayme 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,
> 
> 
> Yes this is almost the same thing as having an NAnt addin for MD. The
> difference between what I'm looking for though and how other IDE's
> such as SharpDevelop have done it is that there needs to be some sort
> of way that this project file (MDB, NAnt .build, whatever) tells the
> IDE (through perhaps some extra XML attributes in the project's markup
> that are assigned to an XML namespace other than what NAnt expects and
> only "picked up" by the IDE) what executable to debug - as well as a
> way that the IDE can get the list of files included in the project to
> allow editing of. 
> 
> NAnt uses a simple pattern matching syntax (for example, compile
> src/MyProject/**.cs includes recursively all cs files below
> src/MyProject) that can be invoked through NAnt's API - this could
> allow an IDE to theoretically apply the pattern, get back the list of
> files that match the pattern, and show them as the list of files in
> the project. However all IDE's addin layers I've seen up to this point
> aren't flexible enough to support this yet.

Except ours.

Go look into it, you could write a NAntProject class that allows a user
to open a NAnt build file *AS* the project file.

Lluis has done so with the mcs *.sources files with great success.

Like I said initially, it sounded like you were interested in opening
NAnt files w/ MD, not building MD w/ NAnt.

Note, that if you were able to make the NAntProject work well, and be
flexible, there would finally be a potential advantage to making MD
build w/ NAnt, because then our project/build files would be the same
files. However, I think doing this and getting the flexibility you need
might be difficult, but I welcome you to try :)

--Todd



More information about the Monodevelop-list mailing list