Mesa (master): scons: add 'targets' variable, for specifying ... targets

Keith Whitwell keithw at kemper.freedesktop.org
Wed May 19 06:04:33 PDT 2010


Module: Mesa
Branch: master
Commit: 39087f636afcee058fc9af2c58cb1e2474c9b258
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=39087f636afcee058fc9af2c58cb1e2474c9b258

Author: Keith Whitwell <keithw at vmware.com>
Date:   Fri May 14 10:55:07 2010 +0100

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.

---

 SConstruct                     |   23 +++++++++++++++++++++++
 src/gallium/targets/SConscript |   20 ++++++++++++++------
 2 files changed, 37 insertions(+), 6 deletions(-)

diff --git a/SConstruct b/SConstruct
index 28ed6ea..c843b41 100644
--- a/SConstruct
+++ b/SConstruct
@@ -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(
diff --git a/src/gallium/targets/SConscript b/src/gallium/targets/SConscript
index ca3e1ec..9077cbf 100644
--- a/src/gallium/targets/SConscript
+++ b/src/gallium/targets/SConscript
@@ -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'))
+
+
+



More information about the mesa-commit mailing list