Import('env')

# 
# Auxiliary modules
#

SConscript('auxiliary/SConscript')

#
# Drivers
#

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

if not env['msvc']:
    # These drivers do not build on MSVC compilers
    SConscript([
        'drivers/i915/SConscript',
    ])

#
# State trackers
#

# Needed by some state trackers
SConscript('winsys/sw/null/SConscript')

if not env['embedded']:
    SConscript('state_trackers/vega/SConscript')
    if env['platform'] not in ('cygwin', 'darwin', 'haiku', 'sunos'):
        SConscript('state_trackers/egl/SConscript')

    if env['x11']:
        SConscript('state_trackers/glx/xlib/SConscript')

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

    if env['platform'] == 'windows':
        SConscript('state_trackers/wgl/SConscript')

#
# Winsys
# 

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

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

if not env['msvc']:
    SConscript([
        'winsys/i915/sw/SConscript',
    ])

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

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

    SConscript([
        'winsys/svga/drm/SConscript',
    ])

    if env['drm_intel']:
        SConscript([
            'winsys/i915/drm/SConscript',
        ])

#
# Targets
#

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

if not env['embedded']:
    if env['platform'] not in ('cygwin', 'darwin', 'freebsd', 'haiku', 'sunos'):
        SConscript([
            'targets/egl-static/SConscript'
        ])

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

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

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

    if env['dri']:
        SConscript([
            'targets/dri-swrast/SConscript',
            'targets/dri-vmwgfx/SConscript',
        ])
        if env['drm_intel']:
            SConscript([
                'targets/dri-i915/SConscript',
            ])


#
# Unit tests & tools
#

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