X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2FSConscript;h=37b3f8572e25a28dee7fbb6c64eef9131998327b;hb=076faf8764d3cd8038145286f7533d0a18e82476;hp=4ba0a32d66925440b72e718547a4fe25334c7a27;hpb=741744f691d6ef63e9f9a4c03136f969f2ffb0bf;p=mesa.git diff --git a/src/SConscript b/src/SConscript index 4ba0a32d669..37b3f8572e2 100644 --- a/src/SConscript +++ b/src/SConscript @@ -1,5 +1,8 @@ -Import('*') +import filecmp +import os +import subprocess +Import('*') if env['platform'] == 'windows': SConscript('getopt/SConscript') @@ -12,6 +15,38 @@ if env['hostonly']: # compilation Return() + +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.""" + + tempfile = "git_sha1.h.tmp" + with open(tempfile, "w") as f: + args = [ 'sh', Dir('#').abspath + '/bin/git_sha1_gen.sh' ] + try: + subprocess.Popen(args, stdout=f).wait() + except: + print "Warning: exception in write_git_sha1_h_file()" + return + + 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("git_sha1.h") +# and update CPPPATH so the git_sha1.h header can be found +env.Append(CPPPATH = ["#" + env['build_dir']]) + + + if env['platform'] != 'windows': SConscript('loader/SConscript')