dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #09934
Re: Swig and scons
On Tue, September 30, 2008 14:41, Anders Logg wrote:
> On Tue, Sep 30, 2008 at 02:35:21PM +0200, Johannes Ring wrote:
>> On Tue, September 30, 2008 13:24, Anders Logg wrote:
>> > On Tue, Sep 30, 2008 at 09:38:07AM +0200, Johannes Ring wrote:
>> >> On Tue, September 30, 2008 09:15, Anders Logg wrote:
>> >> > On Tue, Sep 30, 2008 at 08:39:41AM +0200, Johannes Ring wrote:
>> >> >> On Sat, September 27, 2008 20:05, Garth N. Wells wrote:
>> >> >> >
>> >> >> >
>> >> >> > Johan Hake wrote:
>> >> >> >> On Saturday 27 September 2008 18:17:12 Harish Narayanan wrote:
>> >> >> >>> In order to get the swig-generated dolfin_wrap.cc to build
>> with
>> >> my
>> >> >> gcc,
>> >> >> >>> I need to perform some simple substitutions on the file which
>> >> I've
>> >> >> >>> expressed as a perl script:
>> >> >> >>>
>> >> >> >>> perl -pi -e 's/Type v;/Type v = 0;/g'
>> dolfin/swig/dolfin_wrap.cc
>> >> >> >>
>> >> >> >> Maybee you could make a runnable script called 'swig' and put
>> it
>> >> >> >> somwhere in
>> >> >> >> your path, and make sure it executes before the system swig.
>> Then
>> >> in
>> >> >> the
>> >> >> >> script you call the system swig with the handed sysargs. After
>> >> that
>> >> >> line
>> >> >> >> you
>> >> >> >> execute the command above. Its a hack, but I do not think scons
>> >> >> support
>> >> >> >> this
>> >> >> >> in a better way.
>> >> >> >>
>> >> >> >
>> >> >> > I don't really like this approach. I would prefer to enable
>> >> different
>> >> >> > compiler flags for dolfin_wrap.cc, i.e. do not use -Werror, if
>> that
>> >> >> does
>> >> >> > the trick. dolfin_wrap.cc won't compile under Ubuntu Intrepid
>> with
>> >> >> > -Werror, so we'll need to do something.
>> >> >>
>> >> >> What if we removed the -Werror flag from CXXFLAGS as default and
>> >> instead
>> >> >> let the user decide whether to add it through the customCxxFlags
>> >> option?
>> >> >> This option is cached in scons/options.cache so you only have to
>> set
>> >> it
>> >> >> once.
>> >> >>
>> >> >> Currently, the only way a user can remove the -Werror flag when
>> >> running
>> >> >> scons is by turning off debugging with enableDebug=no. I don't
>> think
>> >> >> this
>> >> >> is very nice since -Werror isn't really a debugging flag.
>> >> >>
>> >> >> Johannes
>> >> >
>> >> > I don't like that. It would increase the risk of someone pushing
>> code
>> >> > that compiles with warnings. DOLFIN has been free of warnings for a
>> >> > few years now and it was quite a bit of work to remove them to
>> begin
>> >> > with.
>> >>
>> >> Okay, I see.
>> >>
>> >> Is it okay then if I move the -Werror flag from the debugging flags
>> to
>> >> the
>> >> default CXXFLAGS and if the user defines CXXFLAGS the default
>> CXXFLAGS
>> >> is
>> >> overwritten? Like this:
>> >>
>> >> diff -r cfbe8dbbf3c9 SConstruct
>> >> --- a/SConstruct Mon Sep 29 15:23:53 2008 +0200
>> >> +++ b/SConstruct Tue Sep 30 09:36:49 2008 +0200
>> >> @@ -149,7 +149,10 @@
>> >> # FIXME: should we also remove the file scons/options.cache?
>> >>
>> >> # Default CXX and FORTRAN flags
>> >> -env["CXXFLAGS"] = "-Wall -pipe -ansi" # -Werror"
>> >> +if os.environ.has_key("CXXFLAGS"):
>> >> + env['CXXFLAGS'] = os.environ["CXXFLAGS"]
>> >> +else:
>> >> + env["CXXFLAGS"] = "-Wall -pipe -ansi -Werror"
>> >> #env["SHFORTRANFLAGS"] = "-Wall -pipe -fPIC"
>> >>
>> >> # Default link flags
>> >> @@ -157,7 +160,7 @@
>> >>
>> >> # If Debug is enabled, add -g:
>> >> if env["enableDebug"]:
>> >> - env.Append(CXXFLAGS=" -DDEBUG -g -Werror")
>> >> + env.Append(CXXFLAGS=" -DDEBUG -g")
>> >>
>> >> if not env["enableDebugUblas"]:
>> >> env.Append(CXXFLAGS=" -DNDEBUG")
>> >>
>> >>
>> >> Johannes
>> >
>> > Sounds good.
>>
>> Done.
>>
>> To build without -Werror, define CXXFLAGS before running scons, e.g.,
>>
>> CXXFLAGS="" scons
>>
>> or
>>
>> CXXFLAGS="-Wall -pipe -ansi" scons
>>
>> Johannes
>
> Nice. Could you add a note on it to the FAQ for people with SWIG
> problems?
I guess this is no longer necessary as Johan's patch will fix this issue.
Johannes
Follow ups
References