don't rewrite the header file if it hasn't changed; this reduces development build time

This commit is contained in:
Benjamin Peterson 2011-08-09 16:28:58 -05:00
parent 71ce8970cf
commit 398256b230
1 changed files with 10 additions and 3 deletions

View File

@ -4,7 +4,9 @@
# TO DO # TO DO
# handle fields that have a type but no name # handle fields that have a type but no name
import os, sys import os
import sys
import StringIO
import subprocess import subprocess
import asdl import asdl
@ -1155,7 +1157,7 @@ def main(srcfile):
sys.exit(1) sys.exit(1)
if INC_DIR: if INC_DIR:
p = "%s/%s-ast.h" % (INC_DIR, mod.name) p = "%s/%s-ast.h" % (INC_DIR, mod.name)
f = open(p, "w") f = StringIO.StringIO()
f.write(auto_gen_msg) f.write(auto_gen_msg)
f.write('#include "asdl.h"\n\n') f.write('#include "asdl.h"\n\n')
c = ChainOfVisitors(TypeDefVisitor(f), c = ChainOfVisitors(TypeDefVisitor(f),
@ -1166,7 +1168,12 @@ def main(srcfile):
f.write("PyObject* PyAST_mod2obj(mod_ty t);\n") f.write("PyObject* PyAST_mod2obj(mod_ty t);\n")
f.write("mod_ty PyAST_obj2mod(PyObject* ast, PyArena* arena, int mode);\n") f.write("mod_ty PyAST_obj2mod(PyObject* ast, PyArena* arena, int mode);\n")
f.write("int PyAST_Check(PyObject* obj);\n") f.write("int PyAST_Check(PyObject* obj);\n")
f.close() s = f.getvalue()
with open(p, "r") as fp:
write = fp.read() != s
if write:
with open(p, "w") as fp:
f.write(s)
if SRC_DIR: if SRC_DIR:
p = os.path.join(SRC_DIR, str(mod.name) + "-ast.c") p = os.path.join(SRC_DIR, str(mod.name) + "-ast.c")