Add SCons configure checks
[senf.git] / site_scons / site_tools / Boost.py
index 4e07ac3..8df9c6b 100644 (file)
@@ -77,6 +77,8 @@ def CompileCheck(target, source, env):
 CompileCheck = SCons.Script.Action(CompileCheck)
 
 def BoostUnitTest(env, target=None, source=None,  **kw):
+    global _ALL_TESTS
+
     target = env.arg2nodes(target)[0]
     source = env.arg2nodes(source)
 
@@ -89,11 +91,10 @@ def BoostUnitTest(env, target=None, source=None,  **kw):
                       **kw)
 
     stamp = env.Command(stampnode, bin,
-                        [ '$SOURCE $BOOSTTESTARGS',
-                          'touch $TARGET' ],
+                        [ './$SOURCE $BOOSTTESTARGS', SCons.Script.Touch('$TARGET')],
                         **kw)
 
-    alias = env.Command(env.File(target), stamp, [])
+    alias = env.Command(env.File(target), stamp, [ env.NopAction() ] )
 
     compileTests = [ src for src in source 
                      if src.suffix in SCons.Tool.cplusplus.CXXSuffixes \
@@ -107,17 +108,24 @@ def BoostUnitTest(env, target=None, source=None,  **kw):
     return alias
 
 def FindAllBoostUnitTests(env, target, source):
+    global _ALL_TESTS
     return _ALL_TESTS
 
+def NopAction(env, target, source):
+    def nop(target, source, env) : return None
+    def nopstr(target, source, env) : return ''
+    return env.Action(nop, nopstr)
+
 def generate(env):
     env.SetDefault(
         BOOST_VARIANT     = '',
+        _BOOST_VARIANT    = '${BOOST_VARIANT and "-" or None}$BOOST_VARIANT',
 
-        BOOSTTESTLIB      = 'boost_unit_test_framework$BOOST_VARIANT',
-        BOOSTREGEXLIB     = 'boost_regex$BOOST_VARIANT',
-        BOOSTFSLIB        = 'boost_filesystem$BOOST_VARIANT',
-        BOOSTIOSTREAMSLIB = 'boost_iostreams$BOOST_VARIANT',
-        BOOSTSIGNALSLIB   = 'boost_signals$BOOST_VARIANT',
+        BOOSTTESTLIB      = 'boost_unit_test_framework$_BOOST_VARIANT',
+        BOOSTREGEXLIB     = 'boost_regex$_BOOST_VARIANT',
+        BOOSTFSLIB        = 'boost_filesystem$_BOOST_VARIANT',
+        BOOSTIOSTREAMSLIB = 'boost_iostreams$_BOOST_VARIANT',
+        BOOSTSIGNALSLIB   = 'boost_signals$_BOOST_VARIANT',
 
         BOOSTTESTARGS     = [ '--build_info=yes', '--log_level=test_suite' ],
     )
@@ -131,6 +139,7 @@ def generate(env):
         source_scanner = SCons.Scanner.C.CScanner(),
         single_source=1
         )
+    env['BUILDERS']['NopAction'] = NopAction
 
 def exists(env):
     return True