Import('env')

#
# Auxiliary modules
#

SConscript('auxiliary/SConscript')
SConscript('auxiliary/pipe-loader/SConscript')

#
# Drivers
#

# These are common and work across all platforms
SConscript([
    'drivers/llvmpipe/SConscript',
    'drivers/rbug/SConscript',
    'drivers/softpipe/SConscript',
    'drivers/svga/SConscript',
    'drivers/trace/SConscript',
    'drivers/swr/SConscript',
])

#
# Winsys
#

SConscript([
    'winsys/sw/null/SConscript',
    'winsys/sw/wrapper/SConscript',
])

if env['x11']:
    SConscript([
        'winsys/sw/xlib/SConscript',
    ])

if env['platform'] == 'windows':
    SConscript([
        'winsys/sw/gdi/SConscript',
    ])

if env['platform'] == 'haiku':
    SConscript([
        'winsys/sw/hgl/SConscript',
    ])

if env['dri']:
    SConscript([
        'winsys/sw/dri/SConscript',
        'winsys/svga/drm/SConscript',
    ])


#
# State trackers and targets
#

SConscript([
    'targets/graw-null/SConscript',
])

if not env['embedded']:
    SConscript([
        'state_trackers/osmesa/SConscript',
        'targets/osmesa/SConscript',
    ])

    if env['x11']:
        SConscript([
            'state_trackers/glx/xlib/SConscript',
            'targets/graw-xlib/SConscript',
            'targets/libgl-xlib/SConscript',
        ])

    if env['platform'] == 'windows':
        SConscript([
            'state_trackers/wgl/SConscript',
            'targets/graw-gdi/SConscript',
            'targets/libgl-gdi/SConscript',
        ])

    if env['platform'] == 'haiku':
        SConscript([
            'state_trackers/hgl/SConscript',
            'targets/haiku-softpipe/SConscript',
        ])

    if env['dri']:
        SConscript([
            'state_trackers/dri/SConscript',
            'targets/dri/SConscript',
        ])


#
# Unit tests & tools
#

if not env['embedded']:
    SConscript('tests/unit/SConscript')
    SConscript('tests/graw/SConscript')