From 33d0c44910860e0522bd56a0f8637a69e0c4a456 Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Fri, 7 Jan 2011 14:30:14 -0800 Subject: 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. --- src/glsl/SConscript | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) (limited to 'src/glsl/SConscript') 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') -- cgit v1.2.3