scons: add 'targets' variable, for specifying ... targets

Ideally scons should be able to work backwards from the list of
targets to figure out which drivers, state trackers and other
convenience libraries need to be built.
This commit is contained in:
Keith Whitwell 2010-05-14 10:55:07 +01:00
parent fc4d1b9ba9
commit 39087f636a
2 changed files with 37 additions and 6 deletions

View File

@ -31,6 +31,7 @@ import common
# Configuration options
default_statetrackers = 'mesa'
default_targets = 'none'
if common.default_platform in ('linux', 'freebsd', 'darwin'):
default_drivers = 'softpipe,failover,svga,i915,i965,trace,identity,llvmpipe'
@ -54,6 +55,28 @@ opts.Add(ListVariable('drivers', 'pipe drivers to build', default_drivers,
opts.Add(ListVariable('winsys', 'winsys drivers to build', default_winsys,
['xlib', 'vmware', 'i915', 'i965', 'gdi', 'radeon', 'graw-xlib']))
opts.Add(ListVariable('targets', 'driver targets to build', default_targets,
['dri-i915',
'dri-i965',
'dri-nouveau',
'dri-radeong',
'dri-swrast',
'dri-vmwgfx',
'egl-i915',
'egl-i965',
'egl-nouveau',
'egl-radeon',
'egl-swrast',
'egl-vmwgfx',
'graw-xlib',
'libgl-gdi',
'libgl-xlib',
'xorg-i915',
'xorg-i965',
'xorg-nouveau',
'xorg-radeon',
'xorg-vmwgfx']))
opts.Add(EnumVariable('MSVS_VERSION', 'MS Visual C++ version', None, allowed_values=('7.1', '8.0', '9.0')))
env = Environment(

View File

@ -1,5 +1,8 @@
import os
Import('*')
# Compatibility with old build scripts:
#
if 'xlib' in env['winsys']:
SConscript([
'libgl-xlib/SConscript',
@ -10,12 +13,7 @@ if 'gdi' in env['winsys']:
'libgl-gdi/SConscript',
])
if env['platform'] == 'linux' and 'xlib' in env['winsys'] and 'graw-xlib' in env['winsys']:
SConscript([
'graw-xlib/SConscript',
])
else:
if not env['msvc']:
if not 'graw-xlib' in env['targets'] and not env['msvc']:
# XXX: disable until MSVC can link correctly
SConscript('graw-null/SConscript')
@ -30,3 +28,13 @@ if 'xorg' in env['statetrackers']:
SConscript([
'xorg-vmwgfx/SConscript',
])
# Ideally all non-target directories would produce convenience
# libraries, and the actual shared libraries and other installables
# would be finally assembled in the targets subtree:
#
for target in env['targets']:
SConscript(os.path.join(target, 'SConscript'))