Import('*')

env = env.Clone()

env.MSVC2013Compat()

env.Prepend(CPPPATH = [
    '#include',
    '#src',
    '#src/mapi',
    '#src/mesa',
    '#src/gallium/include',
    '#src/gallium/auxiliary',
])

# Make generated headers reachable from the include path.
env.Prepend(CPPPATH = [Dir('.').abspath, Dir('glsl').abspath])
env.Prepend(CPPPATH = [Dir('.').abspath, Dir('nir').abspath])

sources = env.ParseSourceList('Makefile.sources', 'LIBCOMPILER_FILES')

compiler = env.ConvenienceLibrary(
    target = 'compiler',
    source = sources
)
Export('compiler')

SConscript('SConscript.glsl')
SConscript('SConscript.nir')
SConscript('SConscript.spirv')
