X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=site_scons%2Fsite_tools%2FBoost.py;h=bc6e0e691d55904925ada4f4d83025e39e61ad83;hb=84f14a42f9993e186c7897ce0db021300e0a2d48;hp=4e07ac3ac7f6bdb85f925e4e25bf5b326ffd418d;hpb=d33cd468d4ece7c0c98270b4d1a9858e5a94510d;p=senf.git diff --git a/site_scons/site_tools/Boost.py b/site_scons/site_tools/Boost.py index 4e07ac3..bc6e0e6 100644 --- a/site_scons/site_tools/Boost.py +++ b/site_scons/site_tools/Boost.py @@ -36,7 +36,8 @@ def CompileCheck(target, source, env): passedTests = {} delay_name = None out.seek(0) - for error in out.read().splitlines(): + result = out.read(); + for error in result.splitlines(): elts = error.split(':',2) if len(elts) != 3 : continue filename, line, message = elts @@ -71,12 +72,14 @@ def CompileCheck(target, source, env): if os.path.exists(target[0].abspath): os.unlink(target[0].abspath) return 1 - file(target[0].abspath,"w").close() + file(target[0].abspath,"w").write(result) return 0 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 +92,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 +109,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 +140,7 @@ def generate(env): source_scanner = SCons.Scanner.C.CScanner(), single_source=1 ) + env['BUILDERS']['NopAction'] = NopAction def exists(env): return True