X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=site_scons%2Fsenfutil.py;h=46e33d1da2ed4eab9f47cce34c087a42b7e3e0b1;hb=2d88e6b3f5a6f3906e42264f58859e6bf9c12dae;hp=25e124915fd04afffd5e7bb6cbfc257f207e5798;hpb=c96297689340465d5f1cb4c677eccea8abdbfc42;p=senf.git diff --git a/site_scons/senfutil.py b/site_scons/senfutil.py index 25e1249..46e33d1 100644 --- a/site_scons/senfutil.py +++ b/site_scons/senfutil.py @@ -1,6 +1,13 @@ -import os.path +import os.path, glob from SCons.Script import * +# Fix for SCons 0.97 compatibility +try: + Variables +except NameError: + Variables = Options + BoolVariable = BoolOption + def parseLogOption(value): stream, area, level = ( x.strip() for x in value.strip().split('|') ) stream = ''.join('(%s)' % x for x in stream.split('::') ) @@ -24,7 +31,7 @@ class BuildTypeOptions: def parseArguments(env, *defs): vars = Variables(args=ARGUMENTS) - vars.AddVariables(*defs) + for d in defs : vars.Add(d) vars.Update(env) env.Help(""" Any construction environment variable may be set from the scons @@ -37,7 +44,9 @@ of variables) using Special command line parameters: """) env.Help(vars.GenerateHelpText(env)) - for k,v in vars.UnknownVariables().iteritems(): + try : unknv = vars.UnknownVariables() + except AttributeError: unknv = vars.UnknownOptions() + for k,v in unknv.iteritems(): if k.endswith('+'): env.Append(**{k[:-1]: v}) else: @@ -51,8 +60,13 @@ Special command line parameters: # c) check for a local SENF, set options accordingly and update that SENF if needed def SetupForSENF(env, senf_paths = []): - senf_paths.extend(('senf', '../senf', os.path.dirname(os.path.dirname(__file__)), - '/usr/local', '/usr')) + senfutildir = os.path.dirname(__file__) + senf_paths.extend(('senf', '../senf', os.path.dirname(senfutildir), '/usr/local', '/usr')) + tooldir = os.path.join(senfutildir, 'site_tools') + + env.Tool('Boost', [ tooldir ]) + env.Tool('PhonyTarget', [ tooldir ]) + env.Append( LIBS = [ 'senf', 'rt', '$BOOSTREGEXLIB', '$BOOSTIOSTREAMSLIB', '$BOOSTSIGNALSLIB', @@ -136,3 +150,12 @@ def DefaultOptions(env): LINKFLAGS_normal = [ '-Wl,-S' ], LINKFLAGS_debug = [ '-g' ], ) + +def Glob(env, exclude=[], subdirs=[]): + testSources = glob.glob("*.test.cc") + sources = [ x for x in glob.glob("*.cc") if x not in testSources and x not in exclude ] + for subdir in subdirs: + testSources += glob.glob(os.path.join(subdir,"*.test.cc")) + sources += [ x for x in glob.glob(os.path.join(subdir,"*.cc")) + if x not in testSources and x not in exclude ] + return (sources, testSources)