unit test fix for last commit. hmpf.
[senf.git] / site_scons / site_tools / Boost.py
index 629dd3e..202ed96 100644 (file)
@@ -88,7 +88,7 @@ def BoostUnitTest(env, target=None, source=None,  **kw):
     stampnode = target.dir.File('.' + target.name + '.stamp')
 
     bin = env.Program(binnode, source,
-                      LIBS = env['LIBS'] + [ '$TEST_EXTRA_LIBS' ],
+                      LIBS = env['LIBS'] + kw.pop('TEST_EXTRA_LIBS', ['$TEST_EXTRA_LIBS']),
                       _LIBFLAGS = ' -Wl,-Bstatic -l$BOOSTTESTLIB -Wl,-Bdynamic ' + env['_LIBFLAGS'],
                       **kw)
 
@@ -142,10 +142,14 @@ Options:
     else:
         msg = ''
     context.Message( "Checking boost version%s... " % msg )
-    ret = context.TryRun("#include <boost/version.hpp>\n"
-                         "#include <iostream>\n"
-                         "int main(int, char **) { std::cout << BOOST_LIB_VERSION << std::endl; }",
-                         ".cc")[-1].strip()
+    if context.env.has_key('BOOST_VERSION'):
+        ret = context.env['BOOST_VERSION']
+    else:
+        ret = context.TryRun("#include <boost/version.hpp>\n"
+                             "#include <iostream>\n"
+                             "int main(int, char **)\n"
+                             "{ std::cout << BOOST_LIB_VERSION << std::endl; }",
+                             ".cc")[-1].strip()
 
     if not ret:
         msg = "no boost includes found"
@@ -194,8 +198,10 @@ def CheckBoostVariants(context, *variants):
         print  "Using %s boost variant." % (
             useVariant and "'%s'" % useVariant or "default")
     context.env.Replace( BOOST_VARIANT = useVariant )
+    context.env.Append( HAS_BOOST_SYSTEM = context.sconf.CheckLib('boost_system', language='c++', autoadd=False)) 
     return useVariant
 
+
 def generate(env):
     env.SetDefault(
         BOOST_VARIANT     = None,
@@ -206,6 +212,9 @@ def generate(env):
         BOOSTFSLIB        = 'boost_filesystem$_BOOST_VARIANT',
         BOOSTIOSTREAMSLIB = 'boost_iostreams$_BOOST_VARIANT',
         BOOSTSIGNALSLIB   = 'boost_signals$_BOOST_VARIANT',
+        
+        _BOOSTSYSTEMLIB   = '${HAS_BOOST_SYSTEM and "boost_system" or ""}',
+        BOOSTSYSTEMLIB    = '$_BOOSTSYSTEMLIB',
 
         BOOSTTESTARGS     = [ '--build_info=yes', '--log_level=test_suite' ],
         )