[llvm-commits] [hlvm] r38158 - /hlvm/trunk/build/filterbuilders.py
Reid Spencer
reid at x10sys.com
Sat Jul 7 17:00:33 PDT 2007
Author: reid
Date: Sat Jul 7 19:00:33 2007
New Revision: 38158
URL: http://llvm.org/viewvc/llvm-project?rev=38158&view=rev
Log:
Add a builder for processing @name@ style configuration replacements. This
allows files like hlvm/Base/Config.h.in to be turned into Config.h, substituting
configuration values for the various substitution tokens.
Modified:
hlvm/trunk/build/filterbuilders.py
Modified: hlvm/trunk/build/filterbuilders.py
URL: http://llvm.org/viewvc/llvm-project/hlvm/trunk/build/filterbuilders.py?rev=38158&r1=38157&r2=38158&view=diff
==============================================================================
--- hlvm/trunk/build/filterbuilders.py (original)
+++ hlvm/trunk/build/filterbuilders.py Sat Jul 7 19:00:33 2007
@@ -122,3 +122,30 @@
env.Append(BUILDERS = {'RNGTokenizer':b})
return 1
+def ConfigFileMessage(target,source,env):
+ return "Generating Configuration File " + target[0].path
+
+def ConfigFileAction(target,source,env):
+ pat = re.compile('@([^@]+)@')
+ tgt = open(target[0].path,'w')
+ for line in fileinput.input(source[0].path):
+ matchobj = pat.search(line)
+ if None != matchobj:
+ var = matchobj.expand('\\1')
+ print 'var:',var
+ if env._dict.has_key(var):
+ substval = env[var]
+ if type(substval) != str:
+ substval = `env[var]`
+ print 'before:',line
+ line = pat.sub(substval,line)
+ print 'after :',line
+ tgt.write(line)
+ continue
+ tgt.close()
+
+def ConfigFile(env):
+ action = env.Action(ConfigFileAction,ConfigFileMessage)
+ builder = env.Builder(action=action,src_suffix='.in',single_source=1)
+ env.Append(BUILDERS = {'ConfigFile':builder})
+ return 1
More information about the llvm-commits
mailing list