diff options
-rw-r--r-- | SConstruct | 2 | ||||
-rw-r--r-- | src/gallium/drivers/sw/SConscript | 16 |
2 files changed, 11 insertions, 7 deletions
diff --git a/SConstruct b/SConstruct index 1c8a00cce95..76ada41f55c 100644 --- a/SConstruct +++ b/SConstruct @@ -136,6 +136,8 @@ if 'softpipe' not in env['drivers']: env['drivers'].append('softpipe') if env['llvm'] and 'llvmpipe' not in env['drivers']: env['drivers'].append('llvmpipe') +if 'sw' not in env['drivers']: + env['drivers'].append('sw') # Includes env.Prepend(CPPPATH = [ diff --git a/src/gallium/drivers/sw/SConscript b/src/gallium/drivers/sw/SConscript index 37d0a0d63ce..e9ebf751ddd 100644 --- a/src/gallium/drivers/sw/SConscript +++ b/src/gallium/drivers/sw/SConscript @@ -5,32 +5,34 @@ # rasterizers into a single driver. A software rasterizer is defined # as any driver which takes an sw_winsys pointer as the only argument # to create_screen. -# -# XXX: unfortunately users of this driver still need to link in any -# extra libraries needed for the particular driver (eg llvm for -# llvmpipe). Not sure how to get around this. Import('*') env = env.Clone() +# To avoid targets having to check extensively or add drivers on a whim, append +# all referenced extra drivers to the exported symbol. +extra = [] if True: env.Append(CPPDEFINES = 'GALLIUM_SOFTPIPE') env.Prepend(LIBS = [softpipe]) + extra.append(softpipe) if env['llvm']: env.Append(CPPDEFINES = 'GALLIUM_LLVMPIPE') env.Tool('udis86') env.Prepend(LIBS = [llvmpipe]) - + extra.append(llvmpipe) + if 'cell' in env['drivers']: env.Append(CPPDEFINES = 'GALLIUM_CELL') env.Prepend(LIBS = [cell]) + extra.append(cell) sw = env.ConvenienceLibrary( target = 'sw', source = [ 'sw.c', ] - ) - Export('sw') + ) + extra +Export('sw') |