← Back to team overview

fenics team mailing list archive

RE: MSVC version of FEniCS

 

Actually, the more pressing desire is to run with the MS compilers and IDE.
I have MinGW and FEniCS compiles with it, although I haven't tried to
compile PETSc with it to complete the FEniCS stack, but I am sure I can make
that work.

What I'll do is try is isolate the problem headers in a clean way, that is,
move some of the sys headers that Windows doesn't share, into a single
include file that accumulates the compiler and platform testing logic. This
doesn't mess up the code with ifdefs all over the place and is a central
place where any portability issues can be addressed. The only disadvantage
is that this header can become a small compilation time drain on the overall
build since it wouldn't be the leanest meanest header you could create. Not
a big problem for MS environment with precompiled headers, but typically
less attractive for gcc that doesn't have precompiled headers; it all
depends on how pervasive the OS specific features are that are included and
of what I see that is small. When that portability layer becomes larger the
right way to deal with it is to compile it into its own library and
associated abstractions.

Theo

-----Original Message-----
From: Anders Logg [mailto:logg@xxxxxxxxx] 
Sent: Friday, December 09, 2005 11:27 PM
To: tomtzigt; Discussion of FEniCS development
Subject: Re: [fenics-dev] MSVC version of FEniCS

On Fri, Dec 09, 2005 at 08:54:43PM -0500, tomtzigt wrote:
>    Guys:
> 
> 
> 
>     I decided to see if I can transmogrify FEniCS into something that
MSDev
>    .NET understands. I am successfully building many of the kernel
projects
>    but in getting this to work I see a handful of Unixisms that will never
>    port to Windows natively.

Anything specific you think of?

If for some reason you insist on running on Windows, I suggest using
Cygwin which at least gives you a Unix-like environment.

> The typical way to deal with this is to have
>    some standard
> 
> 
> 
>    #ifdef LINUX_GNU
> 
>    #include <woopdido>
> 
>    #elsif WINDOWS
> 
>    #include <woopdida>
> 
>    #endif
> 
> 
> 
>    constructs in the headers which I can hack into the code in a fine way
and
>    a not so fine way. So I am trying to gauge if native windowness using
the
>    MS compilers is desired by many or just me.

It's nothing I desire, but I'm not opposed to it. It could bring some
advantages, such as forcing us to follow standards which will also benefit
other platforms.

>    If it is the latter then I
>    won't try to solve this problem neatly. If the larger community is
>    interested, I can solve it nicely.
> 
> 
> 
>    Opinions?
> 
> 
> 
>    Theo

Any suggestions are welcome. I have never built anything on Windows
(except under Cygwin) so the whole Windows platform is a mystery to
me.

/Anders






Follow ups

References