HG: Add compiled hg revision and date to the standard M5 output.

This commit is contained in:
Ali Saidi
2008-06-13 01:09:04 -04:00
parent 2b4874449c
commit 907b28cc62
4 changed files with 54 additions and 3 deletions

View File

@@ -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()

View File

@@ -268,6 +268,10 @@ def main():
print "M5 compiled %s" % internal.core.cvar.compileDate;
print "M5 started %s" % datetime.datetime.now().ctime()
print "M5 executing on %s" % socket.gethostname()
print "M5 revision %s" % internal.core.cvar.hgRev
print "M5 commit date %s" % internal.core.cvar.hgDate
print "command line:",
for argv in sys.argv:
print argv,

View File

@@ -39,6 +39,8 @@
#include "sim/startup.hh"
extern const char *compileDate;
extern const char *hgRev;
extern const char *hgDate;
%}
%include "stdint.i"
@@ -51,6 +53,8 @@ void SimStartup();
void doExitCleanup();
char *compileDate;
char *hgRev;
char *hgDate;
void setClockFrequency(Tick ticksPerSecond);