diff options
author | marha <marha@users.sourceforge.net> | 2011-09-29 08:21:31 +0200 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2011-09-29 08:21:31 +0200 |
commit | bee9191042416cbfb848615189ca1e2a0069f022 (patch) | |
tree | 8f7b2d550ca61d7a6ff10d1fb513fff371268ee0 /mesalib/src/mesa/SConscript | |
parent | 18a8f9f6839dfd899814a76a971e720c1e622236 (diff) | |
download | vcxsrv-bee9191042416cbfb848615189ca1e2a0069f022.tar.gz vcxsrv-bee9191042416cbfb848615189ca1e2a0069f022.tar.bz2 vcxsrv-bee9191042416cbfb848615189ca1e2a0069f022.zip |
xwininfo libXft mesa git update 29 sep 2011
Diffstat (limited to 'mesalib/src/mesa/SConscript')
-rw-r--r-- | mesalib/src/mesa/SConscript | 43 |
1 files changed, 37 insertions, 6 deletions
diff --git a/mesalib/src/mesa/SConscript b/mesalib/src/mesa/SConscript index ff1ffe008..abcce4133 100644 --- a/mesalib/src/mesa/SConscript +++ b/mesalib/src/mesa/SConscript @@ -3,6 +3,9 @@ Import('*') +import filecmp +import os +import subprocess env = env.Clone() @@ -458,13 +461,41 @@ if env['gcc'] and env['platform'] != 'windows': env.Append(CPPPATH = [matypes[0].dir]) -# Create the git_sha1.h file if it doesn't exist already -try: - f = open('main/git_sha1.h', 'r') - f.close() -except IOError: - f = open('main/git_sha1.h', 'w') + + +def write_git_sha1_h_file(filename): + """Mesa looks for a git_sha1.h file at compile time in order to display + the current git hash id in the GL_VERSION string. This function tries + to retrieve the git hashid and write the header file. An empty file + will be created if anything goes wrong.""" + + args = [ 'git', 'log', '-n', '1', '--oneline' ] + try: + (commit, foo) = subprocess.Popen(args, stdout=subprocess.PIPE).communicate() + except: + # git log command didn't work + if not os.path.exists(filename): + # create an empty file if none already exists + f = open(filename, "w") + f.close() + return + + commit = '#define MESA_GIT_SHA1 "git-%s"\n' % commit[0:7] + tempfile = "git_sha1.h.tmp" + f = open(tempfile, "w") + f.write(commit) f.close() + if not os.path.exists(filename) or not filecmp.cmp(tempfile, filename): + # The filename does not exist or it's different from the new file, + # so replace old file with new. + if os.path.exists(filename): + os.remove(filename) + os.rename(tempfile, filename) + return + + +# Create the git_sha1.h header file +write_git_sha1_h_file("main/git_sha1.h") # and update CPPPATH so the git_sha1.h header can be found env.Append(CPPPATH = ["#" + env['build_dir'] + "/mesa/main"]) |