diff options
author | Steve Reinhardt <stever@gmail.com> | 2008-06-13 01:59:10 -0400 |
---|---|---|
committer | Steve Reinhardt <stever@gmail.com> | 2008-06-13 01:59:10 -0400 |
commit | dace77dc4a9fd95650cb4fe967fe28179672d9a3 (patch) | |
tree | 76b4b2ac37d5e41d9a959e7839b9d5ed85952308 /src/python/generate.py | |
parent | caccbd1edcacc82a952429950fcd4314b86b5b89 (diff) | |
parent | 7e6728450fb7bb430f3fb96143cf3bc634407213 (diff) | |
download | gem5-dace77dc4a9fd95650cb4fe967fe28179672d9a3.tar.xz |
Automated merge with ssh://m5sim.org//repo/m5
Diffstat (limited to 'src/python/generate.py')
-rw-r--r-- | src/python/generate.py | 35 |
1 files changed, 33 insertions, 2 deletions
diff --git a/src/python/generate.py b/src/python/generate.py index eead6ff5d..f4d923870 100644 --- a/src/python/generate.py +++ b/src/python/generate.py @@ -31,8 +31,7 @@ import py_compile import sys import zipfile -from os.path import basename -from os.path import exists +from os.path import basename, exists, isdir, join class DictImporter(object): '''This importer takes a dictionary of arbitrary module names that @@ -527,3 +526,35 @@ extern const Flags *compoundFlags[]; ''' f.close() + + def programInfo(self, target, source, env): + def gen_file(target, rev, node, date): + pi_stats = file(target, 'w') + print >>pi_stats, 'const char *hgRev = "%s:%s";' % (rev, node) + print >>pi_stats, 'const char *hgDate = "%s";' % date + pi_stats.close() + + target = str(target[0]) + scons_dir = eval(str(source[0])) + try: + import mercurial.demandimport, mercurial.hg, mercurial.ui + import mercurial.util, mercurial.node + if not exists(scons_dir) or not isdir(scons_dir) or \ + not exists(join(scons_dir, ".hg")): + raise ValueError + repo = mercurial.hg.repository(mercurial.ui.ui(), scons_dir) + rev = mercurial.node.nullrev + repo.changelog.count() + changenode = repo.changelog.node(rev) + changes = repo.changelog.read(changenode) + date = mercurial.util.datestr(changes[2]) + + gen_file(target, rev, mercurial.node.hex(changenode), date) + + mercurial.demandimport.disable() + except ImportError: + gen_file(target, "Unknown", "Unknown", "Unknown") + + except: + print "in except" + gen_file(target, "Unknown", "Unknown", "Unknown") + mercurial.demandimport.disable() |