[Mono-list] Mono and Mint now compiling and running in Visual Studio

Ben Cooley bencooley@cinematix.com
Mon, 6 May 2002 12:42:21 -0700

> > I have managed to create visual studio project that will compile and
> > run Mono and Mint from visual C++ 7.0.  I've tested it with a few
> > and it seems to work.  I haven't run the full test suite on it yet
> Thanks! I guess the windows people will welcome this addition.

I think so.  It's nice to be able to compile and run mono without having
to install cygwin.  I would still like to see fewer DLL dependencies in
the main project (i.e. just one glib dll to link with), but it seems to

> > The footprint of the msvc build is small (a subdirectory from in the
> > "mono" directory that contains all the msvc specific libs, includes,
> > projects, and bin directory).   The only changes to the main project
> > path are a variety of minor source code changes that are necessary for
> > cross platform compatibility.
> Excellent!

Yes, there are just minor changes to the code to get it to compile.

> > I will have a more complete list when I can grab the diffs off my
> > computer and send them.
> Thanks. We're waiting for them: we'll be able to offer more comments
> when we see the actual diffs (please use the -u option of diff).

I diffed it with the version I thought I converted it with, and it's not the
one.  I'm just going to remerge it with the current CVS and then send that
I'm going to Korea tonight, so It'll be a day or two.

 > > ISSUES:
> >
> > Can we come up with a solid way of handling multiple compiler versions.
Perhaps the following:
> >
> > Macros: __GCC__, __MSVC__, __CODEWARRIOR__, __PRODG__, etc.
> >
> > Dirs: mono/msvc - MSVC specific projects libs, includes, bin, etc.
> >         mono/codewarrior - Codewarrior specific projects libs, includes,
> >         etc.
> >
> > Possibly a "compiler.h" file..?
> >
> > Currently I am using _MSC_VER, placing some extra bits in the msvc
version of the config.h file, and #ifdef _MSC_VER including msvc specific
include files where they are needed.
> Yes, I think that's fine. As a general rule we'd like to keep .c files
> free from #ifdefs if possible, but having them in an header file is fine.

Okay..  I'll take that into account when I submit the diffs.  I have several
#ifdef's in the C files that
I can move into macros in the .h files.

> > We have an application that needs to be both cross platform, but who's
> > primary dev environment and tools are based in Windows.  This means that
> > we need the same version of .NET running on all platforms (i.e. mono,
> > because it's cross platform), but we do primary tools development in
> > Windows, for Windows, in Visual Studio with MFC, etc.   Obviously this
> > requires both that we have a working VS library for the mono jit and
> > interpreter for the primary app, as well as CodeWarrior, ProDG, and
> > GNU compatible versions of mono for the other platforms (i.e. GameCube,
> > PS2, XBox).
> I sense it will be fun to see mono support all that platforms:-)

Mono, unlike Java, is well suited to game development in my opinion.  It
allows you
to insulate yourself from the low level stuff, while at the same time
permitting you to
use pointers, access memory directly, and do everything you need to.  And it
well with external C/C++ libs.

> > We still need a C# to C/C++ compiler for final highly optimized release
> > builds of all static assemblies, but that will have to come a bit later
> > I think.
> We have plans for an ahead of time compiler, but that is still a few
> months off...

Yeah.  I have some ideas on that, but they'll have to wait. A little bit
while I'm busy.