+ for file in files:
+ shutil.copy( os.path.join( root, file ), os.path.join( target_dir, file ) )
+
+
+
+ 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 ) ):
+ print( 'downloading %s' % lib_archive )
+ archive_web_request = urllib2.urlopen( 'http://icculus.org/gtkradiant/files/1.6.2/%s' % lib_archive )
+ archive_File = open( lib_archive, 'wb' )
+ while True:
+ data = archive_web_request.read( 1048576 ) #read 1mb at a time
+ if not data:
+ break
+ archive_File.write( data )
+
+ archive_web_request.close()
+ archive_File.close()
+
+ print( 'unpacking %s' % lib_archive )
+ lib_archive_path = os.path.abspath( lib_archive )
+ os.chdir( os.path.dirname( backup_cwd ) )
+
+ archive_Zip = zipfile.ZipFile( lib_archive_path, 'r' )
+ archive_Zip.extractall()
+ archive_Zip.close()
+
+ 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'
+ ]:
+ shutil.copy( os.path.join( srcdir, dll ), 'install' )
+
+ for extra in [
+ 'gtk-2.16.6/etc',
+ 'gtk-2.16.6/share',
+ 'gtkglext-1.2.0/share',
+ 'libxml2-2.7.3/share'
+ ]:
+ self.CopyTree( os.path.join( srcdir, extra ), 'install' )