summaryrefslogtreecommitdiff
path: root/src/glsl/SConscript
diff options
context:
space:
mode:
authorKenneth Graunke <kenneth@whitecape.org>2011-01-07 14:30:14 -0800
committerKenneth Graunke <kenneth@whitecape.org>2011-01-10 19:03:27 -0800
commit33d0c44910860e0522bd56a0f8637a69e0c4a456 (patch)
tree0961477d494bde7c861890c52dbf3add238a8032 /src/glsl/SConscript
parent469ea695bbbc984ebec26b2413ab70d450a283ca (diff)
glsl: Autogenerate builtin_functions.cpp as part of the build process.
Python is already necessary for other parts of Mesa, so there's no reason we can't just generate it. This patch updates both make and SCons to do so.
Diffstat (limited to 'src/glsl/SConscript')
-rw-r--r--src/glsl/SConscript24
1 files changed, 22 insertions, 2 deletions
diff --git a/src/glsl/SConscript b/src/glsl/SConscript
index f179721d52..1757605f7c 100644
--- a/src/glsl/SConscript
+++ b/src/glsl/SConscript
@@ -2,6 +2,8 @@ import common
Import('*')
+from sys import executable as python_cmd
+
env = env.Clone()
env.Prepend(CPPPATH = [
@@ -20,7 +22,6 @@ sources = [
'ast_function.cpp',
'ast_to_hir.cpp',
'ast_type.cpp',
- 'builtin_function.cpp',
'glsl_lexer.cpp',
'glsl_parser.cpp',
'glsl_parser_extras.cpp',
@@ -79,9 +80,28 @@ sources = [
'strtod.c',
]
+env.Prepend(LIBS = ['talloc'])
+env.Append(CPPPATH = ['#/src/glsl'])
+
+builtin_compiler = env.Program(
+ target = 'builtin_compiler',
+ source = sources + ['main.cpp', 'builtin_stubs.cpp',
+ '#src/mesa/program/hash_table.c',
+ '#src/mesa/program/symbol_table.c'],
+)
+
+env.CodeGenerate(
+ target = 'builtin_function.cpp',
+ script = 'builtins/tools/generate_builtins.py',
+ source = builtin_compiler,
+ command = python_cmd + ' $SCRIPT $SOURCE > $TARGET'
+)
+
+env.Depends('builtin_function.cpp', ['builtins/tools/generate_builtins.py', 'builtins/tools/texture_builtins.py'] + Glob('builtins/ir/*'))
+
glsl = env.ConvenienceLibrary(
target = 'glsl',
- source = sources,
+ source = sources + [ 'builtin_function.cpp' ],
)
Export('glsl')