import os, os.path, site_tools.Yaptu, types, re, fnmatch
+import SCons.Util
from SCons.Script import *
senfutildir = os.path.dirname(__file__)
env.Help("""
Any construction environment variable may be set from the scons
command line (see SConstruct file and SCons documentation for a list
-of variables) using
+of variables) usin
+g
VARNAME=value Assign new value
VARNAME+=value Append value at end
try : unknv = vars.UnknownVariables()
except AttributeError: unknv = vars.UnknownOptions()
env.SetDefault(ARGUMENT_VARIABLES = {})
- for k,v in unknv.iteritems():
+ for k,v in ARGLIST:
+ if not unknv.has_key(k) : continue
if k.endswith('+'):
env.Append(**{k[:-1]: v})
env.Append(ARGUMENT_VARIABLES = {k[:-1]:v})
env,
BoolVariable('final', 'Build final (optimized) build', False),
BoolVariable('debug', 'Link in debug symbols', False),
+ BoolVariable('profile', 'compile and link with the profiling enabled option', False),
)
# Set nice default options
env.Append(
- CXXFLAGS = [ '-Wall', '-Woverloaded-virtual' ],
+ CXXFLAGS = [ '-Wall', '-Woverloaded-virtual', "${profile and '-pg' or None}" ],
CXXFLAGS_final = [ '-O3' ],
CXXFLAGS_normal = [ '-O2', '-g' ],
CXXFLAGS_debug = [ '-O0', '-g' ],
+ LINKFLAGS = [ "${profile and '-pg' or None}" ],
LINKFLAGS_normal = [ '-Wl,-S' ],
LINKFLAGS_debug = [ '-g' ],
)
testSources.sort()
return (sources, testSources)
+def CleanGlob(env, targets, patterns):
+ if env.GetOption('clean'):
+ targets = SCons.Util.flatten(targets)
+ for target in targets:
+ if target in BUILD_TARGETS:
+ patterns = map(str,SCons.Util.flatten(env.subst_list(patterns)))
+ files = [ os.path.join(path,f)
+ for path, subdirs, files in os.walk('.')
+ for pattern in patterns
+ for f in fnmatch.filter(files,pattern) ]
+ return env.Clean(target, files)
+
tagfiles = None
def Doxygen(env, doxyheader=None, doxyfooter=None, doxycss=None, mydoxyfile=False, senfdoc_path=[],