#######################################################################
# SConscript for xlib winsys

Import('*')

env = env.Clone()

env.Append(CPPPATH = [
    '#/src/mapi',
    '#/src/mesa',
    '#/src/mesa/main',
    '#src/gallium/state_trackers/glx/xlib',
])

env.Append(CPPDEFINES = ['USE_XSHM'])

env.Prepend(LIBS = env['X11_LIBS'])

# when GLES is enabled, gl* and _glapi_* belong to bridge_glapi and
# shared_glapi respectively
if env['gles']:
    env.Prepend(LIBPATH = [shared_glapi.dir])
    glapi = [bridge_glapi, 'glapi']

env.Prepend(LIBS = [
    st_xlib,
    ws_xlib,
    glapi,
    mesa,
    glsl,
    gallium,
])

sources = [
    'xlib.c',
]

if True:
    env.Append(CPPDEFINES = ['GALLIUM_TRACE', 'GALLIUM_RBUG', 'GALLIUM_GALAHAD', 'GALLIUM_SOFTPIPE'])
    env.Prepend(LIBS = [trace, rbug, galahad, softpipe])

if env['llvm']:
    env.Append(CPPDEFINES = ['GALLIUM_LLVMPIPE'])
    env.Prepend(LIBS = [llvmpipe])
    
if False:
    # TODO: Detect Cell SDK
    env.Append(CPPDEFINES = 'GALLIUM_CELL')
    env.Prepend(LIBS = [cell])

# TODO: write a wrapper function http://www.scons.org/wiki/WrapperFunctions
libgl = env.SharedLibrary(
    target ='GL',
    source = sources,
)

if True:
    # XXX: Only install this libGL.so if DRI not enabled
    libgl = env.InstallSharedLibrary(libgl, version=(1, 5))

env.Alias('libgl-xlib', libgl)
