glsl: Generate ir_expression_operation.h from Python
[mesa.git] / src / compiler / SConscript.glsl
index 43a11d105d459f436c28a446578c25097893c72b..3d28d99fc6310e12dc860962ce7db748ac924335 100644 (file)
@@ -17,12 +17,15 @@ env.Prepend(CPPPATH = [
     '#src/gallium/auxiliary',
     '#src/compiler/glsl',
     '#src/compiler/glsl/glcpp',
+    '#src/compiler/nir',
 ])
 
 env.Prepend(LIBS = [mesautil])
 
 # Make glcpp-parse.h and glsl_parser.h reachable from the include path.
 env.Prepend(CPPPATH = [Dir('.').abspath, Dir('glsl').abspath])
+# Make NIR headers reachable from the include path.
+env.Prepend(CPPPATH = [Dir('.').abspath, Dir('nir').abspath])
 
 glcpp_env = env.Clone()
 glcpp_env.Append(YACCFLAGS = [
@@ -51,7 +54,7 @@ glsl_sources = [
     glcpp_parser[0],
     glsl_lexer,
     glsl_parser[0],
-] 
+]
 
 # parse Makefile.sources
 source_lists = env.ParseSourceList('Makefile.sources')
@@ -67,6 +70,7 @@ if env['msvc']:
 # Copy these files to avoid generation object files into src/mesa/program
 env.Prepend(CPPPATH = ['#src/mesa/main'])
 env.Command('glsl/imports.c', '#src/mesa/main/imports.c', Copy('$TARGET', '$SOURCE'))
+env.Command('glsl/extensions_table.c', '#src/mesa/main/extensions_table.c', Copy('$TARGET', '$SOURCE'))
 # Copy these files to avoid generation object files into src/mesa/program
 env.Prepend(CPPPATH = ['#src/mesa/program'])
 env.Command('glsl/prog_hash_table.c', '#src/mesa/program/prog_hash_table.c', Copy('$TARGET', '$SOURCE'))
@@ -76,6 +80,7 @@ env.Command('glsl/dummy_errors.c', '#src/mesa/program/dummy_errors.c', Copy('$TA
 compiler_objs = env.StaticObject(source_lists['GLSL_COMPILER_CXX_FILES'])
 
 mesa_objs = env.StaticObject([
+    'glsl/extensions_table.c',
     'glsl/imports.c',
     'glsl/prog_hash_table.c',
     'glsl/symbol_table.c',
@@ -109,6 +114,17 @@ if env['platform'] == 'windows':
 
 env.Prepend(LIBS = [compiler, glsl])
 
+compiler_objs += env.StaticObject("glsl/main.cpp")
+
+# GLSL generated sources
+
+env.CodeGenerate(
+    target = 'glsl/ir_expression_operation.h',
+    script = 'glsl/ir_expression_operation.py',
+    source = [],
+    command = python_cmd + ' $SCRIPT > $TARGET'
+)
+
 glsl_compiler = env.Program(
     target = 'glsl_compiler',
     source = compiler_objs,