X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senfscons%2FSENFSCons.py;h=628ebc40b00945f72636bc2e351363d8ece17acb;hb=b8217ba549e85678e4b129e9106771ae89df5086;hp=b6e1c0ec5b99dc0fc1ebac5e59504f4e2c0d8e2e;hpb=77191ea0291fb6c2ad0a472c83258722bf221f8f;p=senf.git diff --git a/senfscons/SENFSCons.py b/senfscons/SENFSCons.py index b6e1c0e..628ebc4 100644 --- a/senfscons/SENFSCons.py +++ b/senfscons/SENFSCons.py @@ -218,11 +218,12 @@ def MakeEnvironment(): global opts, finalizers InitOpts() env = SCons.Environment.Environment(options=opts) - for opt in opts.options: - if SCons.Script.SConscript.Arguments.get(opt.key): - env[opt.key] = SCons.Script.SConscript.Arguments.get(opt.key) - if SCons.Script.SConscript.Arguments.get('final'): - env['final'] = 1 + env.Replace(**SCons.Script.SConscript.Arguments) + #for opt in opts.options: + # if SCons.Script.SConscript.Arguments.get(opt.key): + # env[opt.key] = SCons.Script.SConscript.Arguments.get(opt.key) + #if SCons.Script.SConscript.Arguments.get('final'): + # env['final'] = 1 env.Help("\nSupported build variables (either in SConfig or on the command line:\n") env.Help(opts.GenerateHelpText(env)) @@ -246,7 +247,7 @@ def MakeEnvironment(): if env['final']: env.Append(CXXFLAGS = [ '-O3' ], - CPPDEFINES = [ 'NDEBUG' ]) + CPPDEFINES = [ 'SENF_NO_DEBUG' ]) else: env.Append(CXXFLAGS = [ '-O0', '-g', '-fno-inline' ], # The boost-regex library is not compiled with _GLIBCXX_DEBUG so this fails. @@ -299,7 +300,7 @@ def GlobalTargets(env): ## \brief Return path of a built library within $LOCALLIBDIR # \internal -def LibPath(lib): return '$LOCALLIBDIR/lib%s.a' % lib +def LibPath(lib): return '${LOCALLIBDIR}/${LIBPREFIX}%s${LIBADDSUFFIX}${LIBSUFFIX}' % lib ## \brief Build object files # @@ -341,7 +342,7 @@ def Objects(env, sources, testSources = None, LIBS = [], OBJECTS = [], no_includ target = 'test', objects = objects, test_sources = testSources, - LIBS = LIBS, + LIBS = [ x + '$LIBADDSUFFIX' for x in LIBS ], OBJECTS = OBJECTS, DEPENDS = [ env.File(LibPath(x)) for x in LIBS ]) env.Alias('all_tests', test) @@ -462,13 +463,12 @@ def Doxygen(env, doxyfile = "Doxyfile", extra_sources = []): docs, SCons.Action.Action(("for html in %s/*.html; do " + " echo $$html;" + - " sed -e 's/id=\"current\"/class=\"current\"/' $${html}" + - " | tidy -ascii -q --show-warnings no --fix-uri no " + - " | xsltproc --nonet --html --stringparam topdir %s -o $${html}.new %s - 2>&1" + - " | grep '^-'" + - " | grep -v 'ID .* already defined';" + - " mv $${html}.new $${html}; " + - "done") + " mv $${html} $${html}.orig;" + + " sed -e 's/id=\"current\"/class=\"current\"/' $${html}.orig" + + " | tidy -ascii -q --wrap 0 --show-warnings no --fix-uri no " + + " | sed -e 's/name=\"\([^\"]*\)\" id=\"\\1\"/name=\"\\1\"/g'" + + " | xsltproc --novalid --nonet --html --stringparam topdir %s -o $${html} %s -;" + "done; true") % (htmlnode.dir.abspath, reltopdir, xslfile.abspath))) for doc in docs: env.Depends(doc, xslfile) @@ -608,7 +608,7 @@ def Object(env, target, sources, testSources = None, LIBS = [], OBJECTS = [], no objects = Objects(env,sources,testSources,LIBS=LIBS,OBJECTS=OBJECTS) ob = None if objects: - ob = env.Command(target+".o", objects, "ld -r -o $TARGET $SOURCES") + ob = env.Command(target+"${OBJADDSUFFIX}${OBJSUFFIX}", objects, "ld -r -o $TARGET $SOURCES") env.Default(ob) env.Alias('default', ob) InstallWithSources(env, ob, '$OBJINSTALLDIR', sources, testSources, no_includes) @@ -629,7 +629,7 @@ def Binary(env, binary, sources, testSources = None, LIBS = [], OBJECTS = [], no program = None if objects: progEnv = env.Copy() - progEnv.Prepend(LIBS = LIBS) + progEnv.Prepend(LIBS = [ x + '$LIBADDSUFFIX' for x in LIBS ]) program = progEnv.ProgramNoScan(target=binary,source=objects+OBJECTS) env.Default(program) env.Depends(program, [ env.File(LibPath(x)) for x in LIBS ])