scons: Use Flex and Bison to generate lexer/parser files.

This gets it building again here; I'll leave it up to the SCons
maintainers to make further improvements.
This commit is contained in:
Kenneth Graunke
2011-03-01 15:04:04 -08:00
parent 80ec97af79
commit 8be58df67a
2 changed files with 21 additions and 6 deletions

View File

@@ -11,18 +11,29 @@ env.Prepend(CPPPATH = [
'#src/mapi',
'#src/mesa',
'#src/glsl',
'#src/glsl/glcpp',
])
env.Append(YACCFLAGS = '-d')
parser_env = env.Clone();
parser_env.Append(YACCFLAGS = ['--defines=src/glsl/glsl_parser.h', '-p', '_mesa_glsl_'])
glcpp_lexer = env.CFile('glcpp/glcpp-lex.c', 'glcpp/glcpp-lex.l')
glcpp_parser = env.CFile('glcpp/glcpp-parse.c', 'glcpp/glcpp-parse.y')
glsl_lexer = parser_env.CXXFile('glsl_lexer.cpp', 'glsl_lexer.ll')
glsl_parser = parser_env.CXXFile('glsl_parser.cpp', 'glsl_parser.yy')
sources = [
'glcpp/glcpp-lex.c',
'glcpp/glcpp-parse.c',
glcpp_lexer,
glcpp_parser[0],
'glcpp/pp.c',
'ast_expr.cpp',
'ast_function.cpp',
'ast_to_hir.cpp',
'ast_type.cpp',
'glsl_lexer.cpp',
'glsl_parser.cpp',
glsl_lexer,
glsl_parser[0],
'glsl_parser_extras.cpp',
'glsl_types.cpp',
'glsl_symbol_table.cpp',