+
+ def FetchGamePaks( self, path ):
+ for pak in self.setup_packs:
+ if ( pak == 'Q3Pack' or pak == 'UrTPack' or pak == 'UFOAIPack' or pak == 'Q2WPack' or pak == 'ReactionPack' ):
+ svnurl = 'https://zerowing.idsoftware.com/svn/radiant.gamepacks/%s/trunk' % pak
+ self.CheckoutOrUpdate( svnurl, os.path.join( path, 'installs', pak ) )
+
+ def Setup( self ):
+ try:
+ self.setup_platforms.index( 'local' )
+ except:
+ pass
+ else:
+ # special case, fetch external paks under the local install directory
+ self.FetchGamePaks( self.install_directory )
+ # NOTE: unrelated to self.setup_platforms - grab support files and binaries and install them
+ if ( self.platform == 'Windows' ):
+ backup_cwd = os.getcwd()
+ for lib_archive in [
+ 'gtk+-bundle-2.16.6-20100912-3-win32.zip',
+ 'gtkglext-1.2.0-3-win32.zip',
+ 'libxml2-2.7.3-2-win32.zip',
+ 'jpeg-8c-4-win32.zip',
+ 'STLport-5.2.1-4.zip'
+ ]:
+ if ( not os.path.exists( lib_archive ) ):
+ cmd = [ 'wget', '-N', 'http://porky.nerius.com/radiant-libs-win32/%s' % lib_archive ]
+ print( repr( cmd ) )
+ subprocess.check_call( cmd )
+ lib_archive_path = os.path.abspath( lib_archive )
+ os.chdir( os.path.dirname( backup_cwd ) )
+ cmd = [ 'unzip', '-o', lib_archive_path ]
+ print( repr( cmd ) )
+ subprocess.check_call( cmd )
+ os.chdir( backup_cwd )
+
+ # copy all the dependent runtime data to the install directory
+ srcdir = os.path.dirname( backup_cwd )
+ for dll in [
+ 'gtk-2.16.6/bin/freetype6.dll',
+ 'gtk-2.16.6/bin/intl.dll',
+ 'gtk-2.16.6/bin/libasprintf-0.dll',
+ 'gtk-2.16.6/bin/libatk-1.0-0.dll',
+ 'gtk-2.16.6/bin/libcairo-2.dll',
+ 'gtk-2.16.6/bin/libexpat-1.dll',
+ 'gtk-2.16.6/bin/libfontconfig-1.dll',
+ 'gtk-2.16.6/bin/libgailutil-18.dll',
+ 'gtk-2.16.6/bin/libgcc_s_dw2-1.dll',
+ 'gtk-2.16.6/bin/libgdk-win32-2.0-0.dll',
+ 'gtk-2.16.6/bin/libgdk_pixbuf-2.0-0.dll',
+ 'gtk-2.16.6/bin/libgio-2.0-0.dll',
+ 'gtk-2.16.6/bin/libglib-2.0-0.dll',
+ 'gtk-2.16.6/bin/libgmodule-2.0-0.dll',
+ 'gtk-2.16.6/bin/libgobject-2.0-0.dll',
+ 'gtk-2.16.6/bin/libgthread-2.0-0.dll',
+ 'gtk-2.16.6/bin/libgtk-win32-2.0-0.dll',
+ 'gtk-2.16.6/bin/libpango-1.0-0.dll',
+ 'gtk-2.16.6/bin/libpangocairo-1.0-0.dll',
+ 'gtk-2.16.6/bin/libpangoft2-1.0-0.dll',
+ 'gtk-2.16.6/bin/libpangowin32-1.0-0.dll',
+ 'gtk-2.16.6/bin/libpng14-14.dll',
+ 'gtk-2.16.6/bin/zlib1.dll',
+ 'gtk-2.16.6/lib/GNU.Gettext.dll',
+ 'gtk-2.16.6/lib/gtk-2.0/2.10.0/engines/libpixmap.dll',
+ 'gtk-2.16.6/lib/gtk-2.0/2.10.0/engines/libwimp.dll',
+ 'gtk-2.16.6/lib/gtk-2.0/modules/libgail.dll',
+ 'gtkglext-1.2.0/bin/libgdkglext-win32-1.0-0.dll',
+ 'gtkglext-1.2.0/bin/libgtkglext-win32-1.0-0.dll',
+ 'libxml2-2.7.3/bin/libxml2-2.dll'
+ ]:
+ cmd = [ 'cp', '-v', os.path.join( srcdir, dll ), 'install' ]
+ print( repr( cmd ) )
+ subprocess.check_call( cmd )
+ for extra in [
+ 'gtk-2.16.6/etc',
+ 'gtk-2.16.6/share',
+ 'gtkglext-1.2.0/share',
+ 'libxml2-2.7.3/share'
+ ]:
+ cmd = [ 'cp', '-r', '-v', os.path.join( srcdir, extra ), 'install' ]
+ print( repr( cmd ) )
+ subprocess.check_call( cmd )