← Back to team overview

dolfin team mailing list archive

Re: Swig and scons

 

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




Follow ups

References