Utils: Add backtrace to exception message in SENF_DEBUG builds
[senf.git] / senfscons / SENFSCons.py
index 4c00d5a..d31c844 100644 (file)
@@ -153,6 +153,7 @@ def FinalizeBoost(env):
     env['BOOSTTESTLIB'] = 'boost_unit_test_framework' + env['BOOST_VARIANT']
     env['BOOSTREGEXLIB'] = 'boost_regex' + env['BOOST_VARIANT']
     env['BOOSTFSLIB'] = 'boost_filesystem' + env['BOOST_VARIANT']
+    env['BOOSTIOSTREAMSLIB'] = 'boost_iostreams' + env['BOOST_VARIANT']
 
     env.Append(LIBPATH = [ '$BOOST_LIBDIR' ],
                CPPPATH = [ '$BOOST_INCLUDES' ])
@@ -246,13 +247,13 @@ def MakeEnvironment():
                LIBPATH = [ '$LOCALLIBDIR' ])
 
     if env['final']:
-        env.Append(CXXFLAGS = [ '-O3' ],
-                   CPPDEFINES = [ 'SENF_NO_DEBUG' ])
+        env.Append(CXXFLAGS = [ '-O3' ])
     else:
+        # The boost-regex library is not compiled with _GLIBCXX_DEBUG so this fails:
+        #          CPPDEFINES = [ '_GLIBCXX_DEBUG' ],
         env.Append(CXXFLAGS = [ '-O0', '-g', '-fno-inline' ],
-    # The boost-regex library is not compiled with _GLIBCXX_DEBUG so this fails.
-    #               CPPDEFINES = [ '_GLIBCXX_DEBUG' ],
-                   LINKFLAGS = [ '-g' ])
+                   CPPDEFINES = [ 'SENF_DEBUG' ],
+                   LINKFLAGS = [ '-g', '-rdynamic' ])
 
     env.Append(CPPDEFINES = [ '$EXTRA_DEFINES' ],
                LIBS = [ '$EXTRA_LIBS' ],
@@ -302,6 +303,18 @@ def GlobalTargets(env):
 # \internal
 def LibPath(lib): return '${LOCALLIBDIR}/${LIBPREFIX}%s${LIBADDSUFFIX}${LIBSUFFIX}' % lib
 
+def Test(env, sources, LIBS = [], OBJECTS = []):
+    test = env.BoostUnitTests(
+        target = 'test',
+        objects = [],
+        test_sources = sources,
+        LIBS = [ x + '$LIBADDSUFFIX' for x in LIBS ],
+        OBJECTS = OBJECTS,
+        DEPENDS = [ env.File(LibPath(x)) for x in LIBS ])
+    env.Alias('all_tests', test)
+    env.Alias(env.File('test'), test)
+    
+
 ## \brief Build object files
 #
 # This target helper will build object files from the given