scons: Updates for targets/egl-static.

Update SConscripts to re-enable or add support for EGL on windows and
x11 platforms respectively.  targets/egl-gdi is replaced by
targets/egl-static, where "-static" means pipe drivers and state
trackers are linked to statically by egl_gallium, and egl_gallium is a
built-in driver of libEGL.  There is no more egl_gallium.dll on Windows.
This commit is contained in:
Chia-I Wu 2011-01-09 23:37:32 +08:00
parent 49ed5bb28d
commit a8b6b6555c
8 changed files with 187 additions and 33 deletions

View file

@ -1,16 +1,16 @@
Import('*')
SConscript('mapi/vgapi/SConscript')
if env['platform'] == 'windows':
SConscript('egl/main/SConscript')
SConscript('talloc/SConscript')
SConscript('glsl/SConscript')
SConscript('mapi/glapi/SConscript')
SConscript('mesa/SConscript')
SConscript('mapi/vgapi/SConscript')
if env['platform'] != 'embedded':
SConscript('egl/main/SConscript')
SConscript('glut/glx/SConscript')
SConscript('gallium/SConscript')

View file

@ -7,13 +7,23 @@ Import('*')
env = env.Clone()
env.Append(CPPDEFINES = [
'_EGL_NATIVE_PLATFORM=_EGL_PLATFORM_WINDOWS',
'_EGL_BUILT_IN_DRIVER_GALLIUM',
'_EGL_DRIVER_SEARCH_DIR=\\"\\"',
'_EGL_OS_WINDOWS',
'_EGL_GET_CORE_ADDRESSES',
'KHRONOS_DLL_EXPORTS',
])
if env['platform'] == 'windows':
env.Append(CPPDEFINES = [
'_EGL_NATIVE_PLATFORM=_EGL_PLATFORM_WINDOWS',
'_EGL_OS_WINDOWS',
'_EGL_GET_CORE_ADDRESSES',
'KHRONOS_DLL_EXPORTS',
])
else:
env.Append(CPPDEFINES = [
'_EGL_NATIVE_PLATFORM=_EGL_PLATFORM_X11',
'_EGL_OS_UNIX',
])
env.Append(CPPPATH = [
'#/include',
])
@ -38,15 +48,9 @@ egl_sources = [
'eglsync.c',
]
egl = env.SharedLibrary(
target = 'libEGL',
source = egl_sources + ['egl.def'],
egl = env.ConvenienceLibrary(
target = 'egl',
source = egl_sources,
)
installed_egl = env.InstallSharedLibrary(egl, version=(1, 4, 0))
env.Alias('egl', installed_egl)
egl = [env.FindIxes(egl, 'LIBPREFIX', 'LIBSUFFIX')]
Export('egl')

View file

@ -37,6 +37,9 @@ const struct {
const char *name;
_EGLMain_t main;
} _eglBuiltInDrivers[] = {
#ifdef _EGL_BUILT_IN_DRIVER_GALLIUM
{ "egl_gallium", _eglBuiltInDriverGALLIUM },
#endif
#ifdef _EGL_BUILT_IN_DRIVER_DRI2
{ "egl_dri2", _eglBuiltInDriverDRI2 },
#endif

View file

@ -64,6 +64,10 @@ struct _egl_driver
};
extern _EGLDriver *
_eglBuiltInDriverGALLIUM(const char *args);
extern _EGLDriver *
_eglBuiltInDriverDRI2(const char *args);

View file

@ -55,6 +55,7 @@ SConscript('winsys/sw/null/SConscript')
SConscript('state_trackers/python/SConscript')
if env['platform'] != 'embedded':
SConscript('state_trackers/vega/SConscript')
SConscript('state_trackers/egl/SConscript')
if env['x11']:
SConscript('state_trackers/glx/xlib/SConscript')
@ -66,10 +67,7 @@ if env['platform'] != 'embedded':
SConscript('state_trackers/xorg/SConscript')
if env['platform'] == 'windows':
SConscript([
'state_trackers/egl/SConscript',
'state_trackers/wgl/SConscript',
])
SConscript('state_trackers/wgl/SConscript')
#
# Winsys
@ -85,6 +83,11 @@ SConscript([
'targets/graw-null/SConscript',
])
if env['platform'] != 'embedded':
SConscript([
'targets/egl-static/SConscript'
])
if env['x11']:
SConscript([
'targets/graw-xlib/SConscript',
@ -95,7 +98,6 @@ if env['platform'] == 'windows':
SConscript([
'targets/graw-gdi/SConscript',
'targets/libgl-gdi/SConscript',
#'egl-gdi/SConscript',
])
if env['dri']:

View file

@ -10,11 +10,8 @@ env.Append(CPPPATH = [
'#/src/gallium/winsys/sw',
'.',
])
env.Append(CPPDEFINES = [
'HAVE_GDI_BACKEND',
])
common_sources = [
sources = [
'common/egl_g3d.c',
'common/egl_g3d_api.c',
'common/egl_g3d_image.c',
@ -23,12 +20,31 @@ common_sources = [
'common/native_helper.c',
]
gdi_sources = common_sources + [
'gdi/native_gdi.c',
]
if env['platform'] == 'windows':
env.Append(CPPDEFINES = ['HAVE_GDI_BACKEND'])
sources.append('gdi/native_gdi.c')
else:
if env['x11']:
env.Append(CPPDEFINES = ['HAVE_X11_BACKEND'])
env.Prepend(CPPPATH = [
'#/src/glx',
'#/src/mapi',
])
sources.append([
'x11/native_x11.c',
'x11/native_dri2.c',
'x11/native_ximage.c',
'x11/x11_screen.c',
'x11/glxinit.c'])
if env['dri']:
env.Append(CPPDEFINES = ['GLX_DIRECT_RENDERING'])
sources.append(['#/src/glx/dri2.c'])
if env['drm']:
env.Append(CPPDEFINES = ['HAVE_DRM_BACKEND'])
sources.append(['drm/native_drm.c', 'drm/modeset.c'])
st_egl_gdi = env.ConvenienceLibrary(
target = 'st_egl_gdi',
source = gdi_sources,
st_egl = env.ConvenienceLibrary(
target = 'st_egl',
source = sources,
)
Export('st_egl_gdi')
Export('st_egl')

View file

@ -0,0 +1,122 @@
#######################################################################
# SConscript for egl-static target
Import('*')
env = env.Clone()
env.Append(CPPPATH = [
'#/include',
'#/src/egl/main',
'#/src/gallium/auxiliary',
'#/src/gallium/drivers',
'#/src/gallium/include',
'#/src/gallium/winsys',
'#/src/gallium/state_trackers/egl',
'#/src/gallium/state_trackers/vega',
'#/src/mesa',
])
env.Append(CPPDEFINES = [
'GALLIUM_SOFTPIPE',
'GALLIUM_RBUG',
'GALLIUM_TRACE',
'GALLIUM_GALAHAD',
'_EGL_MAIN=_eglBuiltInDriverGALLIUM',
])
env.Prepend(LIBS = [
softpipe,
rbug,
trace,
galahad,
gallium,
egl,
])
if env['llvm']:
env.Append(CPPDEFINES = ['GALLIUM_LLVMPIPE'])
env.Prepend(LIBS = [llvmpipe])
sources = [
'egl.c',
'egl_pipe.c',
'egl_st.c',
]
if env['platform'] == 'windows':
sources.append('#src/egl/main/egl.def')
env.Append(LIBS = [
'gdi32',
'user32',
'kernel32',
'ws2_32',
])
env.Prepend(LIBS = [
st_egl,
ws_gdi,
])
# OpenVG
env.Append(CPPDEFINES = ['FEATURE_VG=1'])
env.Prepend(LIBS = [vgapi, st_vega])
else:
env.Prepend(LIBS = [
st_egl,
ws_xlib,
])
# OpenGL
env.Append(CPPDEFINES = ['FEATURE_GL=1'])
env.Prepend(LIBS = ['GL', 'talloc', glsl, mesa])
# OpenVG
env.Append(CPPDEFINES = ['FEATURE_VG=1'])
env.Prepend(LIBS = ['OpenVG', st_vega])
if env['dri']:
env.ParseConfig('pkg-config --cflags --libs xfixes')
# pipe drivers
if env['drm']:
env.ParseConfig('pkg-config --cflags --libs libdrm')
if env['drm_intel']:
env.ParseConfig('pkg-config --cflags --libs libdrm_intel')
env.Append(CPPDEFINES = ['_EGL_PIPE_I915', '_EGL_PIPE_I965'])
env.Prepend(LIBS = [
i915drm,
i915,
i965drm,
i965,
])
if env['drm_radeon']:
env.ParseConfig('pkg-config --cflags --libs libdrm_radeon')
env.Append(CPPDEFINES = ['_EGL_PIPE_R300', '_EGL_PIPE_R600'])
env.Prepend(LIBS = [
radeonwinsys,
r300,
r600winsys,
r600,
])
env.Append(CPPDEFINES = ['_EGL_PIPE_VMWGFX'])
env.Prepend(LIBS = [
svgadrm,
svga,
])
egl_gallium = env.SharedLibrary(
target ='libEGL',
source = sources,
)
env.Depends(egl_gallium, [vgapi])
egl_gallium = env.InstallSharedLibrary(egl_gallium, version=(1, 4, 0))
env.Alias('egl-gallium', egl_gallium)

View file

@ -51,6 +51,9 @@ if env['platform'] != 'winddk':
env.InstallSharedLibrary(openvg, version=(1, 0, 0))
vgapi = [env.FindIxes(openvg, 'LIBPREFIX', 'LIBSUFFIX')]
if env['platform'] == 'windows':
vgapi = env.FindIxes(openvg, 'LIBPREFIX', 'LIBSUFFIX')
else:
vgapi = env.FindIxes(openvg, 'SHLIBPREFIX', 'SHLIBSUFFIX')
Export(['vgapi'])