X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=SConstruct;h=de6f8aa8730c443bd5d4e3d3330d08447e3bc1c7;hb=38fefda326ca127aa20a234755d9bb5cf0910516;hp=d8c0510f91c35dcb52da52586a3e6628a27e2611;hpb=b817a4fde1ea04cb45a9912dd7aaf2657e66cc8d;p=senf.git diff --git a/SConstruct b/SConstruct index d8c0510..de6f8aa 100644 --- a/SConstruct +++ b/SConstruct @@ -49,8 +49,9 @@ env.Append( CPPPATH = [ '$BUILDDIR', '#' ], LOCALLIBDIR = '$BUILDDIR', LIBPATH = [ '$LOCALLIBDIR' ], - LIBS = [ '$LIBSENF$LIBADDSUFFIX', 'rt', '$BOOSTREGEXLIB', - '$BOOSTIOSTREAMSLIB', '$BOOSTSIGNALSLIB', '$BOOSTFSLIB' ], + LIBS = [ '$LIBSENF$LIBADDSUFFIX', '$EXTRA_LIBS' ], + EXTRA_LIBS = [ 'rt', '$BOOSTREGEXLIB', '$BOOSTIOSTREAMSLIB', '$BOOSTSIGNALSLIB', + '$BOOSTFSLIB' ], TEST_EXTRA_LIBS = [ ], VALGRINDARGS = [ '--num-callers=50' ], @@ -115,8 +116,18 @@ senfutil.parseArguments( BoolVariable('final', 'Build final (optimized) build', False), BoolVariable('debug', 'Link in debug symbols', False), BoolVariable('syslayout', 'Install in to system layout directories (lib/, include/ etc)', False), + BoolVariable('sparse_tests', 'Link tests against object files and not the senf lib', False) ) +if 'test_changes' in COMMAND_LINE_TARGETS and not env.has_key('only_tests'): + if os.popen("svnversion").read().strip() == "exported": + env['only_tests'] = " ".join(os.popen("git ls-files --modified").read().strip().split("\n")) + else: + env['only_tests'] = " ".join(l[7:] + for l in os.popen("svn status").read().rstrip().split("\n") + if l[0] == 'M') + +if env.has_key('only_tests') : env['sparse_tests'] = True Export('env') # Create Doxyfile.local otherwise doxygen will barf on this non-existent file @@ -134,6 +145,9 @@ SConscriptChdir(0) SConscript("debian/SConscript") SConscriptChdir(1) if os.path.exists('SConscript.local') : SConscript('SConscript.local') +if env['sparse_tests']: + import SparseTestHack + SparseTestHack.setup(env) if env.subst('$BUILDDIR') == '#': SConscript("SConscript") else: @@ -141,6 +155,8 @@ else: SConscript("Examples/SConscript") SConscript("HowTos/SConscript") SConscript("doclib/SConscript") +if env['sparse_tests']: + SparseTestHack.build(env, 'test_changes' in COMMAND_LINE_TARGETS) ########################################################################### # Define build targets @@ -156,6 +172,7 @@ env.Install('${INCLUDEINSTALLDIR}', 'boost') env.Alias('install_all', env.FindInstalledFiles()) env.Alias('default', DEFAULT_TARGETS) env.Alias('all_tests', env.FindAllBoostUnitTests()) +env.Alias('test_changes', 'all_tests') env.Alias('all', [ 'default', 'all_tests', 'examples', 'all_docs' ]) #### prepare