diff options
author | Tobias Arrskog <topfs2@xbmc.org> | 2011-05-05 07:49:58 +0200 |
---|---|---|
committer | Tobias Arrskog <topfs2@xbmc.org> | 2011-05-20 15:01:21 +0200 |
commit | a867751c7ebe25759e80861481ac8c9838b09565 (patch) | |
tree | 9b8d39a1aaf166f9dddcd208b6dd31eed72a313b /lib/jsoncpp/scons-tools/substinfile.py | |
parent | b0be9efa66890f73eb5bc5368205204e6d9772e5 (diff) |
Removed jsoncpp
Diffstat (limited to 'lib/jsoncpp/scons-tools/substinfile.py')
-rw-r--r-- | lib/jsoncpp/scons-tools/substinfile.py | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/lib/jsoncpp/scons-tools/substinfile.py b/lib/jsoncpp/scons-tools/substinfile.py deleted file mode 100644 index 4d305851bb..0000000000 --- a/lib/jsoncpp/scons-tools/substinfile.py +++ /dev/null @@ -1,79 +0,0 @@ -import re -from SCons.Script import * # the usual scons stuff you get in a SConscript - -def generate(env): - """ - Add builders and construction variables for the - SubstInFile tool. - - Adds SubstInFile builder, which substitutes the keys->values of SUBST_DICT - from the source to the target. - The values of SUBST_DICT first have any construction variables expanded - (its keys are not expanded). - If a value of SUBST_DICT is a python callable function, it is called and - the result is expanded as the value. - If there's more than one source and more than one target, each target gets - substituted from the corresponding source. - """ - def do_subst_in_file(targetfile, sourcefile, dict): - """Replace all instances of the keys of dict with their values. - For example, if dict is {'%VERSION%': '1.2345', '%BASE%': 'MyProg'}, - then all instances of %VERSION% in the file will be replaced with 1.2345 etc. - """ - try: - f = open(sourcefile, 'rb') - contents = f.read() - f.close() - except: - raise SCons.Errors.UserError, "Can't read source file %s"%sourcefile - for (k,v) in dict.items(): - contents = re.sub(k, v, contents) - try: - f = open(targetfile, 'wb') - f.write(contents) - f.close() - except: - raise SCons.Errors.UserError, "Can't write target file %s"%targetfile - return 0 # success - - def subst_in_file(target, source, env): - if not env.has_key('SUBST_DICT'): - raise SCons.Errors.UserError, "SubstInFile requires SUBST_DICT to be set." - d = dict(env['SUBST_DICT']) # copy it - for (k,v) in d.items(): - if callable(v): - d[k] = env.subst(v()).replace('\\','\\\\') - elif SCons.Util.is_String(v): - d[k] = env.subst(v).replace('\\','\\\\') - else: - raise SCons.Errors.UserError, "SubstInFile: key %s: %s must be a string or callable"%(k, repr(v)) - for (t,s) in zip(target, source): - return do_subst_in_file(str(t), str(s), d) - - def subst_in_file_string(target, source, env): - """This is what gets printed on the console.""" - return '\n'.join(['Substituting vars from %s into %s'%(str(s), str(t)) - for (t,s) in zip(target, source)]) - - def subst_emitter(target, source, env): - """Add dependency from substituted SUBST_DICT to target. - Returns original target, source tuple unchanged. - """ - d = env['SUBST_DICT'].copy() # copy it - for (k,v) in d.items(): - if callable(v): - d[k] = env.subst(v()) - elif SCons.Util.is_String(v): - d[k]=env.subst(v) - Depends(target, SCons.Node.Python.Value(d)) - return target, source - -## env.Append(TOOLS = 'substinfile') # this should be automaticaly done by Scons ?!? - subst_action = SCons.Action.Action( subst_in_file, subst_in_file_string ) - env['BUILDERS']['SubstInFile'] = Builder(action=subst_action, emitter=subst_emitter) - -def exists(env): - """ - Make sure tool exists. - """ - return True |