X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=config.py;h=e91e9f1f2e62843509e2799dcd6f9722d6ad7d50;hb=428c32dd98495aae93cd4e78e85f1db091446ff0;hp=30f623df25ef6e42645593f26b327611757afeea;hpb=d94d656b7fa149b2dc7a210d10f2c9185dbb4840;p=xonotic%2Fnetradiant.git diff --git a/config.py b/config.py index 30f623df..e91e9f1f 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,19 +250,16 @@ 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 Exception( '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 ) ) @@ -276,25 +273,19 @@ class Config: 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' ) + depsfile = 'GtkR-deps-1.6-4.zip' + if ( not os.path.exists( depsfile ) ): + cmd = [ 'wget', '-N', 'http://zerowing.idsoftware.com/files/radiant/developer/1.6.1/%s' % depsfile ] + print( repr( cmd ) ) + subprocess.check_call( cmd ) # 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' ) + cmd = [ 'unzip', '-o', f ] + print( repr( cmd ) ) + subprocess.check_call( cmd ) os.chdir( backup_cwd ) # copy all the dependent runtime data to the install directory @@ -312,25 +303,30 @@ class Config: 'gtk2/bin/libgmodule-2.0-0.dll', 'gtk2/bin/libpng13.dll', 'gtk2/bin/libpango-1.0-0.dll', + 'gtk2/bin/libpangoft2-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' ) + 'gtk2/lib/iconv.dll', + 'gtk2/zlib1.dll', + 'freetype-dev_2.4.2-1_win32/bin/freetype6.dll', + 'fontconfig-dev_2.8.0-2_win32/bin/libfontconfig-1.dll', + 'expat_2.0.1-1_win32/bin/libexpat-1.dll', + ]: + cmd = [ 'cp', '-v', os.path.join( srcdir, f ), 'install' ] + print( repr( cmd ) ) + subprocess.check_call( cmd ) for d in [ 'gtk2/etc', 'gtk2/share', + 'fontconfig-dev_2.8.0-2_win32/etc', + 'fontconfig-dev_2.8.0-2_win32/share', + 'freetype-dev_2.4.2-1_win32/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' ) + cmd = [ 'cp', '-r', '-v', os.path.join( srcdir, d ), 'install' ] + print( repr( cmd ) ) + subprocess.check_call( cmd ) # 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