More hacking about with the revision number stuff. Now build timestamp is derived with __DATE__ and __TIME__, and make-svn-rev-header.py checks if there's any need to update the .h file, which should result in less needless rebuilds/relinks.

Originally committed to SVN as r431.
This commit is contained in:
Niels Martin Hansen 2006-06-27 18:06:31 +00:00
parent c68c13c59a
commit b1671d596c
2 changed files with 15 additions and 6 deletions

View File

@ -11,19 +11,27 @@
from xml.dom.minidom import parse
from time import gmtime, strftime
from os.path import isfile
from sys import exit
entries_file = parse('../.svn/entries')
def getRevision(entries):
for entry in entries:
if entry.getAttribute("name") == "":
return entry.getAttribute("revision")
for entry in entries:
if entry.getAttribute("name") == "":
return entry.getAttribute("revision")
revision = getRevision(entries_file.getElementsByTagName("entry"))
if isfile("svn-revision.h"):
infile = file("svn-revision.h", "r")
for ln in infile:
if ln == "#define BUILD_SVN_REVISION " + revision + "\n":
infile.close()
exit()
outfile = file("svn-revision.h", "w+")
outfile.write("// This file is automatically generated by make-svn-rev-header.py\n")
outfile.write("// Do not modify or add to revision control\n\n")
outfile.write("#define BUILD_SVN_REVISION " + revision + "\n")
outfile.write("#define BUILD_TIMESTAMP \"" + strftime("%a, %d %b %Y %H:%M:%S +0000", gmtime()) + "\"\n")
outfile.close()

View File

@ -49,13 +49,14 @@
#endif
#else
#define BUILD_TIMESTAMP __DATE__ " " __TIME__
#ifndef BUILD_SVN_REVISION
#define BUILD_SVN_REVISION 0
#endif
#endif
#define BUILD_TIMESTAMP _T(__DATE__) _T(" ") _T(__TIME__)
// If the BUILD_SVN_REVISION happens to be negative, the build is assumed to be a public-release build (ie. not prerel)
// So manually edit build/svn-revision.h to match that, when doing such a build, or add some other magic to do that.
@ -84,7 +85,7 @@ struct VersionInfoStruct {
IsDebug = false;
#endif
SvnRev = BUILD_SVN_REVISION;
BuildTime = _T(BUILD_TIMESTAMP);
BuildTime = BUILD_TIMESTAMP;
BuildCredit = _T(BUILD_CREDIT);
if (SvnRev > 0)