[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