scons: Get glsl2 and glcpp programs building correctly.
This commit is contained in:
@@ -30,7 +30,7 @@ glcpp_parser = env.CFile('glcpp/glcpp-parse.c', 'glcpp/glcpp-parse.y')
|
|||||||
glsl_lexer = parser_env.CXXFile('glsl_lexer.cpp', 'glsl_lexer.ll')
|
glsl_lexer = parser_env.CXXFile('glsl_lexer.cpp', 'glsl_lexer.ll')
|
||||||
glsl_parser = parser_env.CXXFile('glsl_parser.cpp', 'glsl_parser.yy')
|
glsl_parser = parser_env.CXXFile('glsl_parser.cpp', 'glsl_parser.yy')
|
||||||
|
|
||||||
sources = [
|
glsl_sources = [
|
||||||
glcpp_lexer,
|
glcpp_lexer,
|
||||||
glcpp_parser[0],
|
glcpp_parser[0],
|
||||||
'glcpp/pp.c',
|
'glcpp/pp.c',
|
||||||
@@ -98,19 +98,23 @@ sources = [
|
|||||||
'strtod.c',
|
'strtod.c',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
if env['crosscompile'] and env['platform'] != 'embedded':
|
|
||||||
Import('builtin_glsl_function')
|
|
||||||
else:
|
|
||||||
if env['msvc']:
|
if env['msvc']:
|
||||||
env.Prepend(CPPPATH = ['#/src/getopt'])
|
env.Prepend(CPPPATH = ['#/src/getopt'])
|
||||||
env.PrependUnique(LIBS = [getopt])
|
env.PrependUnique(LIBS = [getopt])
|
||||||
|
|
||||||
|
main_obj = env.StaticObject('main.cpp')
|
||||||
|
|
||||||
|
mesa_objs = env.StaticObject([
|
||||||
|
'#src/mesa/program/hash_table.c',
|
||||||
|
'#src/mesa/program/symbol_table.c',
|
||||||
|
])
|
||||||
|
|
||||||
|
if env['crosscompile'] and env['platform'] != 'embedded':
|
||||||
|
Import('builtin_glsl_function')
|
||||||
|
else:
|
||||||
builtin_compiler = env.Program(
|
builtin_compiler = env.Program(
|
||||||
target = 'builtin_compiler',
|
target = 'builtin_compiler',
|
||||||
source = sources + ['main.cpp', 'builtin_stubs.cpp',
|
source = main_obj + glsl_sources + ['builtin_stubs.cpp'] + mesa_objs,
|
||||||
'#src/mesa/program/hash_table.c',
|
|
||||||
'#src/mesa/program/symbol_table.c'],
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# SCons builtin dependency scanner doesn't detect that glsl_lexer.ll
|
# SCons builtin dependency scanner doesn't detect that glsl_lexer.ll
|
||||||
@@ -132,11 +136,11 @@ else:
|
|||||||
Return()
|
Return()
|
||||||
|
|
||||||
|
|
||||||
sources += builtin_glsl_function
|
glsl_sources += builtin_glsl_function
|
||||||
|
|
||||||
glsl = env.ConvenienceLibrary(
|
glsl = env.ConvenienceLibrary(
|
||||||
target = 'glsl',
|
target = 'glsl',
|
||||||
source = sources,
|
source = glsl_sources,
|
||||||
)
|
)
|
||||||
|
|
||||||
# SCons builtin dependency scanner doesn't detect that glsl_lexer.ll depends on
|
# SCons builtin dependency scanner doesn't detect that glsl_lexer.ll depends on
|
||||||
@@ -145,9 +149,6 @@ env.Depends(glsl, glsl_parser)
|
|||||||
|
|
||||||
Export('glsl')
|
Export('glsl')
|
||||||
|
|
||||||
# FIXME: We can't build the programs because there's a cyclic dependency between tis directory and src/mesa
|
|
||||||
Return()
|
|
||||||
|
|
||||||
env = env.Clone()
|
env = env.Clone()
|
||||||
|
|
||||||
if env['platform'] == 'windows':
|
if env['platform'] == 'windows':
|
||||||
@@ -157,14 +158,14 @@ if env['platform'] == 'windows':
|
|||||||
|
|
||||||
env.Prepend(LIBS = [glsl])
|
env.Prepend(LIBS = [glsl])
|
||||||
|
|
||||||
env.Program(
|
glsl2 = env.Program(
|
||||||
target = 'glsl2',
|
target = 'glsl2',
|
||||||
source = [
|
source = main_obj + mesa_objs,
|
||||||
'main.cpp',
|
|
||||||
]
|
|
||||||
)
|
)
|
||||||
|
env.Alias('glsl2', glsl2)
|
||||||
|
|
||||||
env.Program(
|
glcpp = env.Program(
|
||||||
target = 'glcpp',
|
target = 'glcpp/glcpp',
|
||||||
source = ['glcpp/glcpp.c'],
|
source = ['glcpp/glcpp.c'] + mesa_objs,
|
||||||
)
|
)
|
||||||
|
env.Alias('glcpp', glcpp)
|
||||||
|
Reference in New Issue
Block a user