X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senfscons%2FSENFSCons.py;h=aa5efa2e93b36cebf592429b7047e3554db421ca;hb=41fe0d795abca302db24e7a955df6ef15ffed722;hp=623c9d7b81c2b8de2cce81a67b43b425e650b8ff;hpb=54fe6b70dd2c783a37f4bbd62a166160adae0e0f;p=senf.git diff --git a/senfscons/SENFSCons.py b/senfscons/SENFSCons.py index 623c9d7..aa5efa2 100644 --- a/senfscons/SENFSCons.py +++ b/senfscons/SENFSCons.py @@ -51,6 +51,7 @@ SCONS_TOOLS = [ "Dia2Png", "CopyToDir", "InstallIncludes", + "ProgramNoScan", ] opts = None @@ -149,6 +150,7 @@ def FinalizeBoost(env): env['BOOSTTESTLIB'] = 'libboost_unit_test_framework' + env['BOOST_VARIANT'] env['BOOSTREGEXLIB'] = 'libboost_regex' + env['BOOST_VARIANT'] + env['BOOSTFSLIB'] = 'libboost_filesystem' + env['BOOST_VARIANT'] env.Append(LIBPATH = [ '$BOOST_LIBDIR' ], CPPPATH = [ '$BOOST_INCLUDES' ]) @@ -323,14 +325,14 @@ def Objects(env, sources, testSources = None, LIBS = [], OBJECTS = []): objects = None if sources: - objects = env.Object([ - source - for source in sources - if not str(source).endswith('.o') ]) + [ - source - for source in sources - if str(source).endswith('.o') ] - + obsources = [ source + for source in sources + if not str(source).endswith('.o') ] + objects = [ source + for source in sources + if str(source).endswith('.o') ] + if obsources: + objects += env.Object(obsources) if testSources: test = env.BoostUnitTests( @@ -349,6 +351,9 @@ def Objects(env, sources, testSources = None, LIBS = [], OBJECTS = []): return objects def InstallIncludeFiles(env, files): + # Hrmpf ... why do I need this in 0.97?? + if env.GetOption('clean'): + return target = env.Dir(env['INCLUDEINSTALLDIR']) base = env.Dir(env['INSTALL_BASE']) for f in files: @@ -363,8 +368,7 @@ def InstallWithSources(env, targets, dir, sources, testSources = [], no_includes if type(testSources) is not type([]): testSources = [ testSources ] - installs = [] - installs.append( env.Install(dir, targets) ) + installs = [ env.Install(dir, targets) ] if not no_includes: target = env.Dir(env['INCLUDEINSTALLDIR']).Dir( @@ -500,8 +504,8 @@ def Doxygen(env, doxyfile = "Doxyfile", extra_sources = []): l = len(env.Dir('#').abspath) if htmlnode: env.Alias('install_all', - env.Install( '$DOCINSTALLDIR' + htmlnode.dir.dir.abspath[l:], - htmlnode.dir )) + env.Command('$DOCINSTALLDIR' + htmlnode.dir.abspath[l:], htmlnode.dir, + [ SCons.Defaults.Copy('$TARGET','$SOURCE') ])) if tagnode: env.Alias('install_all', env.Install( '$DOCINSTALLDIR' + tagnode.dir.abspath[l:], @@ -620,7 +624,7 @@ def Binary(env, binary, sources, testSources = None, LIBS = [], OBJECTS = [], no if objects: progEnv = env.Copy() progEnv.Prepend(LIBS = LIBS) - program = progEnv.Program(target=binary,source=objects+OBJECTS) + program = progEnv.ProgramNoScan(target=binary,source=objects+OBJECTS) env.Default(program) env.Depends(program, [ env.File(LibPath(x)) for x in LIBS ]) env.Alias('default', program) @@ -631,8 +635,7 @@ def Binary(env, binary, sources, testSources = None, LIBS = [], OBJECTS = [], no def AllIncludesHH(env, headers): headers.sort() - file(env.File("all_includes.hh").abspath,"w").write("".join([ '#include "%s"\n' % f - for f in headers ])) - env.Alias('all', 'all_includes.hh') - env.Clean('all', 'all_includes.hh') - + target = env.File("all_includes.hh") + file(target.abspath,"w").write("".join([ '#include "%s"\n' % f + for f in headers ])) + env.Clean('all', target)