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

Import('*')

if env['platform'] != 'linux':
    Return()

if 'mesa' not in env['statetrackers']:
    print 'warning: Mesa state tracker disabled: skipping build of xlib libGL.so'
    Return()

if env['dri']:
    print 'warning: DRI enabled: skipping build of xlib libGL.so'
    Return()

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 = [
    st_xlib,
    ws_xlib,
    trace,
    rbug,
    identity,
    glapi,
    mesa,
    glsl,
    gallium,
    'talloc'
])

sources = [
    'xlib.c',
]

env.Tool('x11')

if True:
    env.Append(CPPDEFINES = 'GALLIUM_SOFTPIPE')
    env.Prepend(LIBS = [softpipe])

if True:
    env.Append(CPPDEFINES = 'GALLIUM_GALAHAD')
    env.Prepend(LIBS = [galahad])

if env['llvm']:
    env.Append(CPPDEFINES = 'GALLIUM_LLVMPIPE')
    env.Tool('udis86')
    env.Prepend(LIBS = [llvmpipe])
    
if 'cell' in env['drivers']:
    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 not env['dri']:
    # Only install this libGL.so if DRI not enabled
    env.InstallSharedLibrary(libgl, version=(1, 5))
