X-Git-Url: https://de.git.xonotic.org/?p=xonotic%2Fnetradiant.git;a=blobdiff_plain;f=config.py;h=ad7ad9e924ec12074a2f1e3dc852ef9eb3ad67ab;hp=48b54c9481cc6073d4698d708cfab4a89ae74ce4;hb=dc4e125df26fcdb2423638bf3e9ffed6124ff266;hpb=995f6a1011ef2df976200ab59ad3190fdc8e9b50 diff --git a/config.py b/config.py index 48b54c94..ad7ad9e9 100644 --- a/config.py +++ b/config.py @@ -1,4 +1,4 @@ -import sys, traceback, platform, re, commands, platform +import sys, traceback, platform, re, commands, platform, subprocess if __name__ != '__main__': from SCons.Script import * @@ -33,7 +33,7 @@ class Config: # platforms for which to assemble a setup self.setup_platforms = [ 'local', 'x86', 'x64', 'win32' ] # paks to assemble in the setup - self.setup_packs = [ 'Q3Pack', 'UrTPack', 'UFOAIPack', 'Q2WPack' ] + self.setup_packs = [ 'Q3Pack', 'UrTPack', 'UFOAIPack', 'Q2WPack', 'JAPack' ] def __repr__( self ): return 'config: target=%s config=%s' % ( self.target_selected, self.config_selected ) @@ -158,7 +158,7 @@ class Config: build_dir = os.path.join( 'build', config_name, 'q3map2' ) BuildDir( build_dir, '.', duplicate = 0 ) lib_objects = [] - for project in [ 'libs/cmdlib/cmdlib.vcproj', 'libs/mathlib/mathlib.vcproj', 'libs/l_net/l_net.vcproj', 'libs/ddslib/ddslib.vcproj', 'libs/picomodel/picomodel.vcproj', 'libs/md5lib/md5lib.vcproj' ]: + for project in [ 'libs/cmdlib/cmdlib.vcproj', 'libs/mathlib/mathlib.vcproj', 'libs/l_net/l_net.vcproj', 'libs/ddslib/ddslib.vcproj', 'libs/picomodel/picomodel.vcproj', 'libs/md5lib/md5lib_VC9.vcproj' ]: Export( 'project' ) lib_objects += SConscript( os.path.join( build_dir, 'SConscript.lib' ) ) Export( 'lib_objects' ) @@ -250,27 +250,84 @@ class Config: def CheckoutOrUpdate( self, svnurl, path ): if ( os.path.exists( path ) ): - # NOTE: check the svnurl matches? - cmd = 'svn update "%s"' % path - print cmd + cmd = [ 'svn', 'update', path ] else: - cmd = 'svn checkout %s "%s"' % ( svnurl, path ) - ret = os.system( cmd ) - if ( ret != 0 ): - raise 'checkout or update failed' + cmd = [ 'svn', 'checkout', svnurl, path ] + print( repr( cmd ) ) + subprocess.check_call( cmd ) def FetchGamePaks( self, path ): for pak in self.setup_packs: - if ( pak == 'Q3Pack' or pak == 'UrTPack' or pak == 'UFOAIPack' or pak == 'Q2WPack' ): + if ( pak == 'Q3Pack' or pak == 'UrTPack' or pak == 'UFOAIPack' or pak == 'Q2WPack' or pak == 'JAPack' ): svnurl = 'https://zerowing.idsoftware.com/svn/radiant.gamepacks/%s/trunk' % pak self.CheckoutOrUpdate( svnurl, os.path.join( path, 'installs', pak ) ) def Setup( self ): - for platform in self.setup_platforms: - if ( platform == 'local' ): - # special case, fetch external paks under the local install directory - self.FetchGamePaks( self.install_directory ) + 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' ): + depsfile = 'GtkR-deps-1.6-3.zip' + # TMP + #if ( not os.path.exists( depsfile ) ): + if ( True ): + cmd = 'wget http://zerowing.idsoftware.com/files/radiant/developer/1.6.1/%s' % depsfile + print cmd + ret = os.system( cmd ) + if ( ret != 0 ): + raise Exception( 'Failed to download dependencies file' ) + + # extract one directoy above + f = os.path.abspath( depsfile ) + backup_cwd = os.getcwd() + os.chdir( os.path.dirname( backup_cwd ) ) + cmd = 'unzip %s' % f + print cmd + ret = os.system( cmd ) + if ( ret != 0 ): + raise Exception( 'unzip dependencies file failed' ) + os.chdir( backup_cwd ) + + # copy all the dependent runtime data to the install directory + srcdir = os.path.dirname( backup_cwd ) + for f in [ + 'libxml2/bin/libxml2.dll', + 'gtk2/bin/libglib-2.0-0.dll', + 'gtk2/bin/libgobject-2.0-0.dll', + 'gtk2/bin/libgdk-win32-2.0-0.dll', + 'gtk2/bin/libgtk-win32-2.0-0.dll', + 'gtk2/bin/intl.dll', + 'gtk2/bin/libatk-1.0-0.dll', + 'gtk2/bin/libcairo-2.dll', + 'gtk2/bin/libgdk_pixbuf-2.0-0.dll', + 'gtk2/bin/libgmodule-2.0-0.dll', + 'gtk2/bin/libpng13.dll', + 'gtk2/bin/libpango-1.0-0.dll', + 'gtk2/bin/libpangocairo-1.0-0.dll', + 'gtk2/bin/libpangowin32-1.0-0.dll', + 'gtk2/lib/libgtkglext-win32-1.0-0.dll', + 'gtk2/lib/libgdkglext-win32-1.0-0.dll', + 'gtk2/lib/iconv.dll', ]: + cmd = 'cp -v "%s" installs' % os.path.join( srcdir, f ) + print cmd + ret = os.system( cmd ) + if ( ret != 0 ): + raise Exception( 'runtime file copy failed' ) + for d in [ + 'gtk2/etc', + 'gtk2/share', + ]: + cmd = 'cp -r -v "%s" install' % os.path.join( srcdir, d ) + print cmd + ret = os.system( cmd ) + if ( ret != 0 ): + raise Exception( 'runtime directory copy failed' ) # parse the config statement line to produce/update an existing config list # the configs expose a list of keywords and accepted values, which the engine parses out