To match what's done in the automake build. --- src/SConscript | 43 +++++++++++++++++++++++++++++++++++++++++++ src/mesa/SConscript | 43 ++----------------------------------------- 2 files changed, 45 insertions(+), 41 deletions(-)
diff --git a/src/SConscript b/src/SConscript index 4ba0a32..719aa69 100644 --- a/src/SConscript +++ b/src/SConscript @@ -1,5 +1,6 @@ Import('*') +import os if env['platform'] == 'windows': SConscript('getopt/SConscript') @@ -12,6 +13,48 @@ 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.""" + + 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): + 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 + + 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("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') diff --git a/src/mesa/SConscript b/src/mesa/SConscript index 434800e..2a340ac 100644 --- a/src/mesa/SConscript +++ b/src/mesa/SConscript @@ -4,7 +4,6 @@ Import('*') import filecmp -import os import subprocess from sys import executable as python_cmd @@ -18,10 +17,12 @@ env.Append(CPPPATH = [ '#/src/mapi', '#/src/glsl', '#/src/mesa', + '#/src/mesa/main', '#/src/gallium/include', '#/src/gallium/auxiliary', Dir('../mapi'), # src/mapi build path Dir('.'), # src/mesa build path + Dir('main'), # src/mesa/main/ build path ]) if env['platform'] == 'windows': @@ -119,46 +120,6 @@ if env['platform'] not in ('cygwin', 'darwin', 'windows', 'haiku'): env.Append(CPPPATH = [matypes[0].dir]) -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): - dirname = os.path.dirname(filename) - if not os.path.exists(dirname): - os.makedirs(dirname) - # 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"]) - - # # Libraries # -- 1.9.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev