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))
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.
## \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
#
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)
target = env.Dir(env['INCLUDEINSTALLDIR']).Dir(
env.Dir('.').get_path(env.Dir(env['INSTALL_BASE'])))
install = env.InstallIncludes( target = target,
- source = sources,
+ source = [ type(x) is str and env.File(x) or x
+ for x in sources ],
INSTALL_BASE = env.Dir('.') )
env.Alias( 'install_all', install )
for type in env.get("DOXY_XREF_TYPES",[ "bug", "todo" ]):
xref = os.path.join(xmlnode.dir.abspath,type+".xml")
xref_pp = env.Command(xref+'i', [ xref, os.path.join(basedir,'xrefxtract.xslt'), xmlnode ],
- [ "test -s $SOURCE && xsltproc -o $TARGET" +
+ [ "test -s $SOURCE && xsltproc --nonet -o $TARGET" +
" --stringparam module $MODULE" +
" --stringparam type $TYPE" +
" ${SOURCES[1]} $SOURCE || touch $TARGET" ],
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)
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 ])