scons: Fix glew build on MSVC.
The environment for building the DLL needs to be quite different from the environment for building the programs, in order to get the dllexport/dllimport attribute done currectly. I don't know how MinGW managed to build the programs, but MS linker refuses to link symbols with mismatching attributes.
This commit is contained in:
@@ -3,14 +3,9 @@ Import('*')
|
||||
if env['platform'] not in ['windows', 'linux']:
|
||||
Return()
|
||||
|
||||
# Shared environment settings
|
||||
env = env.Clone()
|
||||
|
||||
env.Append(CPPDEFINES = [
|
||||
'GLEW_BUILD',
|
||||
#'GLEW_STATIC',
|
||||
#'GLEW_MX', # Multiple Rendering Contexts support
|
||||
])
|
||||
|
||||
env.PrependUnique(CPPPATH = [
|
||||
'#/include',
|
||||
])
|
||||
@@ -29,31 +24,41 @@ else:
|
||||
'X11',
|
||||
])
|
||||
|
||||
if env['platform'] == 'windows':
|
||||
# Library specific environment settings
|
||||
lib_env = env.Clone()
|
||||
|
||||
lib_env.Append(CPPDEFINES = [
|
||||
'GLEW_BUILD',
|
||||
#'GLEW_STATIC',
|
||||
#'GLEW_MX', # Multiple Rendering Contexts support
|
||||
])
|
||||
|
||||
if lib_env['platform'] == 'windows':
|
||||
target = 'glew'
|
||||
else:
|
||||
target = 'GLEW'
|
||||
|
||||
glew = env.SharedLibrary(
|
||||
glew = lib_env.SharedLibrary(
|
||||
target = target,
|
||||
source = [
|
||||
'glew.c',
|
||||
],
|
||||
)
|
||||
|
||||
if env['platform'] == 'windows':
|
||||
glew = env.FindIxes(glew, 'LIBPREFIX', 'LIBSUFFIX')
|
||||
if lib_env['platform'] == 'windows':
|
||||
glew = lib_env.FindIxes(glew, 'LIBPREFIX', 'LIBSUFFIX')
|
||||
|
||||
env = env.Clone()
|
||||
# Program specific environment settings
|
||||
prog_env = env.Clone()
|
||||
|
||||
env.Prepend(LIBS = [glew])
|
||||
prog_env.Prepend(LIBS = [glew])
|
||||
|
||||
env.Program(
|
||||
prog_env.Program(
|
||||
target = 'glewinfo',
|
||||
source = ['glewinfo.c'],
|
||||
)
|
||||
|
||||
env.Program(
|
||||
prog_env.Program(
|
||||
target = 'visualinfo',
|
||||
source = ['visualinfo.c'],
|
||||
)
|
||||
|
Reference in New Issue
Block a user