X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=satscons%2FSatSCons.py;h=6c8bcc90093deff004d9c6ca9fa7a615753cb5cd;hb=05633cf2fb569dad4bf2118ec5203e61974b35f5;hp=83c468e238af28b12d32bed8e560eab1a6eb2c93;hpb=be850b3a668390421f62baf542c2a7b7e984386f;p=senf.git diff --git a/satscons/SatSCons.py b/satscons/SatSCons.py index 83c468e..6c8bcc9 100644 --- a/satscons/SatSCons.py +++ b/satscons/SatSCons.py @@ -1,8 +1,15 @@ import os.path, SCons.Options, SCons.Environment, SCons.Script.SConscript, glob +SCONS_TOOLS = [ + "Doxygen", + "Dia2Png", +] + opts = None finalizers = [] +basedir = os.path.split(__file__)[0] + def InitOpts(): global opts if opts is not None: return @@ -28,7 +35,7 @@ def UseBoost(): Finalizer(FinalizeBoost) def FinalizeBoost(env): - env.Tool('BoostUnitTests', [os.path.split(__file__)[0]]) + env.Tool('BoostUnitTests', [basedir]) if env['BOOST_TOOLSET']: runtime = "" @@ -64,12 +71,6 @@ def FinalizeSTLPort(env): env.Append(LIBS = [ '$STLPORT_DEBUGLIB' ], CPPDEFINES = [ '_STLP_DEBUG' ]) -def UseDoxygen(): - Finalizer(FinalizeDoxygen) - -def FinalizeDoxygen(env): - env.Tool('Doxygen', [os.path.split(__file__)[0]]) - def MakeEnvironment(): global opts, finalizers InitOpts() @@ -85,6 +86,9 @@ def MakeEnvironment(): for finalizer in finalizers: finalizer(env) + for tool in SCONS_TOOLS: + env.Tool(tool, [basedir]) + env.Append(CXXFLAGS = [ '-Wall', '-Woverloaded-virtual', '-Wno-long-long' ], LOCALLIBDIR = [ '#' ], LIBPATH = [ '$LOCALLIBDIR' ]) @@ -147,18 +151,18 @@ def Objects(env, sources, testSources = None, LIBS = []): return objects -def Doxygen(env, sources, testSources = None, target='doc', image = []): - if type(sources) == type(()): - testSources = sources[1] - sources = sources[0] - - doc = env.Doxygen( - target = target, - source = sources, - image = image) - - env.Alias('all_docs', doc) - return doc +def DoxyGlob(exclude=[]): + sources = [ f + for ext in ("cci", "ct", "cti", "h", "hh", "ih", "mmc", "dox") + for f in glob.glob("*."+ext) + if f not in exclude ] + return sources + +def Doxygen(env, doxyfile="Doxyfile", extra_sources = []): + docs = env.Doxygen(doxyfile) + env.Depends(docs,extra_sources) + env.Alias('all_docs', *docs) + return docs def Lib(env, library, sources, testSources = None, LIBS = []): objects = Objects(env,sources,testSources,LIBS=LIBS)