scons: put the generated git_sha1.h file in top-level src/ directory
[mesa.git] / src / mesa / SConscript
index a674a1bdc482afeca26498c1440b059959aed15f..d20b1585a259186c0e1731ad6ad1e51dbc5a02dd 100644 (file)
@@ -3,20 +3,24 @@
 
 
 Import('*')
-import filecmp
-import os
-import subprocess
 from sys import executable as python_cmd
 
 env = env.Clone()
 
+env.MSVC2013Compat()
+
 env.Append(CPPPATH = [
+    '../compiler/nir',  # for generated nir_opcodes.h, etc
     '#/src',
     '#/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':
@@ -35,18 +39,13 @@ else:
 # parse Makefile.sources
 source_lists = env.ParseSourceList('Makefile.sources')
 
-env.Append(YACCFLAGS = '-d -p "_mesa_program_"')
-program_lex = env.CFile('program/lex.yy.c', 'program/program_lexer.l')
-program_parse = env.CFile('program/program_parse.tab.c',
-                          'program/program_parse.y')
-program_sources = source_lists['PROGRAM_FILES'] + [
-    program_lex,
-    program_parse[0],
-]
+env.Append(YACCFLAGS = ['-d', '-p', '_mesa_program_'])
+env.CFile('program/lex.yy.c', 'program/program_lexer.l')
+env.CFile('program/program_parse.tab.c', 'program/program_parse.y')
 
 mesa_sources = (
     source_lists['MESA_FILES'] +
-    program_sources +
+    source_lists['PROGRAM_FILES'] +
     source_lists['STATETRACKER_FILES']
 )
 
@@ -59,11 +58,31 @@ get_hash_header = env.CodeGenerate(
       command = python_cmd + ' $SCRIPT ' + ' -f $SOURCE > $TARGET'
 )
 
+format_info = env.CodeGenerate(
+      target = 'main/format_info.h',
+      script = 'main/format_info.py',
+      source = 'main/formats.csv',
+      command = python_cmd + ' $SCRIPT ' + ' $SOURCE > $TARGET'
+)
+
+format_pack = env.CodeGenerate(
+      target = 'main/format_pack.c',
+      script = 'main/format_pack.py',
+      source = 'main/formats.csv',
+      command = python_cmd + ' $SCRIPT ' + ' $SOURCE > $TARGET'
+)
+
+format_unpack = env.CodeGenerate(
+      target = 'main/format_unpack.c',
+      script = 'main/format_unpack.py',
+      source = 'main/formats.csv',
+      command = python_cmd + ' $SCRIPT ' + ' $SOURCE > $TARGET'
+)
+
 #
 # Assembly sources
 #
-if (env['gcc'] or env['clang']) and \
-   env['platform'] not in ('cygwin', 'darwin', 'windows', 'haiku'):
+if env['platform'] not in ('cygwin', 'darwin', 'windows', 'haiku'):
     if env['machine'] == 'x86':
         env.Append(CPPDEFINES = [
             'USE_X86_ASM',
@@ -99,43 +118,6 @@ if (env['gcc'] or env['clang']) and \
         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):
-            # 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
 #