+ def emit_radiant( self ):
+ settings = self
+ for config_name in self.config_selected:
+ config = {}
+ config['name'] = config_name
+ config['shared'] = False
+ Export( 'utils', 'settings', 'config' )
+ build_dir = os.path.join( 'build', config_name, 'radiant' )
+ VariantDir( build_dir, '.', duplicate = 0 )
+ lib_objects = []
+ for project in [ 'libs/synapse/synapse.vcproj', 'libs/cmdlib/cmdlib.vcproj', 'libs/mathlib/mathlib.vcproj', 'libs/l_net/l_net.vcproj' ]:
+ Export( 'project' )
+ lib_objects += SConscript( os.path.join( build_dir, 'SConscript.lib' ) )
+ Export( 'lib_objects' )
+ radiant = SConscript( os.path.join( build_dir, 'SConscript.radiant' ) )
+ Default( InstallAs( os.path.join( self.install_directory, 'radiant.bin' ), radiant ) )
+
+ # PIC versions of the libs for the modules
+ shlib_objects_extra = {}
+ for project in [ 'libs/synapse/synapse.vcproj', 'libs/mathlib/mathlib.vcproj', 'libs/picomodel/picomodel.vcproj', 'libs/cmdlib/cmdlib.vcproj', 'libs/splines/splines.vcproj' ]:
+ ( libpath, libname ) = os.path.split( project )
+ libname = os.path.splitext( libname )[0]
+ config['shared'] = True
+ Export( 'project', 'config' )
+ build_dir = os.path.join( 'build', config_name, 'shobjs' )
+ VariantDir( build_dir, '.', duplicate = 0 )
+ shlib_objects_extra[libname] = SConscript( os.path.join( build_dir, 'SConscript.lib' ) )
+
+ for project in [ 'plugins/vfspk3/vfspk3.vcproj',
+ 'plugins/vfspak/vfspak.vcproj',
+ 'plugins/vfswad/vfswad.vcproj',
+ 'plugins/eclassfgd/fgd.vcproj',
+ 'plugins/entity/entity.vcproj',
+ 'plugins/image/image.vcproj',
+ 'plugins/model/model.vcproj',
+ 'plugins/imagepng/imagepng.vcproj',
+ 'plugins/imagewal/imagewal.vcproj',
+ 'plugins/imagehl/imagehl.vcproj',
+ 'plugins/imagem8/imagem8.vcproj',
+ 'plugins/spritemodel/spritemodel.vcproj',
+ 'plugins/textool/textool.vcproj',
+ 'plugins/map/map.vcproj',
+ 'plugins/mapxml/mapxml.vcproj',
+ 'plugins/shaders/shaders.vcproj',
+ 'plugins/surface/surface.vcproj',
+ 'plugins/surface_ufoai/surface_ufoai.vcproj',
+ 'plugins/surface_quake2/surface_quake2.vcproj',
+ 'plugins/surface_heretic2/surface_heretic2.vcproj',
+ 'contrib/camera/camera.vcproj',
+ 'contrib/prtview/prtview.vcproj',
+ 'contrib/hydratoolz/hydratoolz.vcproj',
+ 'contrib/bobtoolz/bobtoolz.vcproj',
+ 'contrib/gtkgensurf/gtkgensurf.vcproj',
+ 'contrib/ufoai/ufoai.vcproj',
+ 'contrib/bkgrnd2d/bkgrnd2d.vcproj'
+ ]:
+ ( libpath, libname ) = os.path.split( project )
+ libname = os.path.splitext( libname )[0]
+ # The old code assigned shlib_objects to shlib_objects_extra['synapse'],
+ # and this resulted in a non-copy. Stuff is added to shlib_objects below.
+ # So we need the explicit copy so we don't modify shlib_objects_extra['synapse'].
+ shlib_objects = shlib_objects_extra['synapse'][:]
+ if ( libname == 'camera' ):
+ shlib_objects += shlib_objects_extra['splines']
+ elif ( libname == 'entity' ):
+ shlib_objects += shlib_objects_extra['mathlib']
+ elif ( libname == 'map' ):
+ shlib_objects += shlib_objects_extra['cmdlib']
+ elif ( libname == 'model' ):
+ shlib_objects += shlib_objects_extra['picomodel']
+ shlib_objects += shlib_objects_extra['mathlib']
+ elif ( libname == 'spritemodel' ):
+ shlib_objects += shlib_objects_extra['mathlib']
+ elif ( libname == 'textool' ):
+ shlib_objects += shlib_objects_extra['mathlib']
+ elif ( libname == 'bobtoolz' ):
+ shlib_objects += shlib_objects_extra['mathlib']
+ shlib_objects += shlib_objects_extra['cmdlib']
+ Export( 'project', 'shlib_objects' )
+ module = SConscript( os.path.join( build_dir, 'SConscript.module' ) )
+ Default( InstallAs( os.path.join( self.install_directory, 'modules/%s.so' % libname ), module ) )
+
+ def emit_q3map2( self ):