X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2FSConscript;h=d861af8e4d719248b8f89dbb57f5656a6b2d7438;hb=a56f0203c34b587da423133647d242f4b3a567ad;hp=40b7fc151de72f47019649dbb6f8a733952b8829;hpb=f9b8c9299d10542c9806927018a488f84adcb036;p=mesa.git diff --git a/src/SConscript b/src/SConscript index 40b7fc151de..d861af8e4d7 100644 --- a/src/SConscript +++ b/src/SConscript @@ -1,18 +1,66 @@ -Import('*') +import filecmp +import os +import subprocess +Import('*') if env['platform'] == 'windows': SConscript('getopt/SConscript') SConscript('util/SConscript') -SConscript('glsl/SConscript') +SConscript('compiler/SConscript') if env['hostonly']: # We are just compiling the things necessary on the host for cross # compilation Return() -SConscript('loader/SConscript') + +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', 'rev-parse', '--short=10', 'HEAD' ] + try: + (commit, foo) = subprocess.Popen(args, stdout=subprocess.PIPE).communicate() + except: + print "Warning: exception in write_git_sha1_h_file()" + # git log command didn't work + if not os.path.exists(filename): + dirname = os.path.dirname(filename) + if dirname and not os.path.exists(dirname): + os.makedirs(dirname) + # create an empty file if none already exists + f = open(filename, "w") + f.close() + return + + # note that commit[:-1] removes the trailing newline character + commit = '#define MESA_GIT_SHA1 "git-%s"\n' % commit[:-1] + 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("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') # When env['gles'] is set, the targets defined in mapi/glapi/SConscript are not # used. libgl-xlib and libgl-gdi adapt themselves to use the targets defined @@ -30,13 +78,8 @@ SConscript('mesa/SConscript') if not env['embedded']: if env['platform'] not in ('cygwin', 'darwin', 'freebsd', 'haiku', 'windows'): SConscript('glx/SConscript') - if env['platform'] not in ['darwin', 'haiku', 'sunos', 'windows']: - if env['dri']: - SConscript('egl/drivers/dri2/SConscript') - SConscript('egl/main/SConscript') if env['platform'] == 'haiku': - SConscript('egl/drivers/haiku/SConscript') - SConscript('egl/main/SConscript') + SConscript('egl/SConscript') if env['gles']: SConscript('mapi/shared-glapi/SConscript')