scons: Fix MinGW cross compilation.

The generated GLSL header files were only being built for the host
platform, and not the target platform.

Trivial.
This commit is contained in:
Jose Fonseca 2016-08-31 12:16:32 +01:00
parent 8caf2cb0c0
commit 55e417222f
1 changed files with 32 additions and 28 deletions

View File

@ -89,35 +89,7 @@ mesa_objs = env.StaticObject([
compiler_objs += mesa_objs
glsl = env.ConvenienceLibrary(
target = 'glsl',
source = glsl_sources,
)
# SCons builtin dependency scanner doesn't detect that glsl_lexer.ll depends on
# glsl_parser.h
env.Depends(glsl, glsl_parser)
Export('glsl')
# Skip building these programs as they will cause SCons error "Two environments
# with different actions were specified for the same target"
if env['crosscompile'] or env['embedded']:
Return()
env = env.Clone()
if env['platform'] == 'windows':
env.PrependUnique(LIBS = [
'user32',
])
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',
@ -137,6 +109,38 @@ env.CodeGenerate(
command = python_cmd + ' $SCRIPT strings > $TARGET'
)
glsl = env.ConvenienceLibrary(
target = 'glsl',
source = glsl_sources,
)
# SCons builtin dependency scanner doesn't detect that glsl_lexer.ll depends on
# glsl_parser.h
env.Depends(glsl, glsl_parser)
Export('glsl')
#
# XXX: It's important to not add any generated source files after this point,
# or it will break MinGW cross-compilation.
#
# Skip building these programs as they will cause SCons error "Two environments
# with different actions were specified for the same target"
if env['crosscompile'] or env['embedded']:
Return()
env = env.Clone()
if env['platform'] == 'windows':
env.PrependUnique(LIBS = [
'user32',
])
env.Prepend(LIBS = [compiler, glsl])
compiler_objs += env.StaticObject("glsl/main.cpp")
glsl_compiler = env.Program(
target = 'glsl_compiler',
source = compiler_objs,