mirror of
https://github.com/UberGames/GtkRadiant.git
synced 2024-11-10 06:31:41 +00:00
working on more installation functionality
git-svn-id: svn://svn.icculus.org/gtkradiant/GtkRadiant/branches/ZeroRadiant@240 8a3a26a2-13c4-0310-b231-cf6edde360e5
This commit is contained in:
parent
c5e7176fc3
commit
555ea60407
4 changed files with 107 additions and 4 deletions
47
config.py
47
config.py
|
@ -13,7 +13,7 @@ import utils
|
|||
class Config:
|
||||
# not used atm, but useful to keep a list in mind
|
||||
# may use them eventually for the 'all' and other aliases expansions?
|
||||
target_choices = utils.Enum( 'radiant', 'q3map2' )
|
||||
target_choices = utils.Enum( 'radiant', 'q3map2', 'setup' )
|
||||
config_choices = utils.Enum( 'debug', 'release' )
|
||||
|
||||
# aliases
|
||||
|
@ -29,6 +29,11 @@ class Config:
|
|||
self.cc = 'gcc'
|
||||
self.cxx = 'g++'
|
||||
self.install_directory = 'install'
|
||||
|
||||
# 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' ]
|
||||
|
||||
def __repr__( self ):
|
||||
return 'config: target=%s config=%s' % ( self.target_selected, self.config_selected )
|
||||
|
@ -48,12 +53,20 @@ class Config:
|
|||
def _processInstallDir( self, ops ):
|
||||
self.install_directory = os.path.normpath( os.path.expanduser( ops[0] ) )
|
||||
|
||||
def _processSetupPlatforms( self, ops ):
|
||||
self.setup_platforms = ops
|
||||
|
||||
def _processSetupPacks( self, ops ):
|
||||
self.setup_packs = ops
|
||||
|
||||
def setupParser( self, operators ):
|
||||
operators['target'] = self._processTarget
|
||||
operators['config'] = self._processConfig
|
||||
operators['cc'] = self._processCC
|
||||
operators['cxx'] = self._processCXX
|
||||
operators['install_directory'] = self._processInstallDir
|
||||
operators['setup_platforms'] = self._processSetupPlatforms
|
||||
operators['setup_packs'] = self._processSetupPacks
|
||||
|
||||
def emit_radiant( self ):
|
||||
settings = self
|
||||
|
@ -167,6 +180,13 @@ class Config:
|
|||
else:
|
||||
self.emit_q3map2()
|
||||
|
||||
try:
|
||||
self.target_selected.index( 'setup' )
|
||||
except:
|
||||
pass
|
||||
else:
|
||||
self.Setup()
|
||||
|
||||
def SetupEnvironment( self, env, config, useGtk = False, useGtkGL = False, useJPEG = False, useZ = False, usePNG = False ):
|
||||
env['CC'] = self.cc
|
||||
env['CXX'] = self.cxx
|
||||
|
@ -227,9 +247,30 @@ class Config:
|
|||
else:
|
||||
env.Append( CFLAGS = [ '-O3', '-Winline', '-ffast-math', '-fno-unsafe-math-optimizations', '-fno-strict-aliasing' ] )
|
||||
env.Append( CXXFLAGS = [ '-O3', '-Winline', '-ffast-math', '-fno-unsafe-math-optimizations','-fno-strict-aliasing' ] )
|
||||
#env.Append( CFLAGS = [ '-march=pentium3' ] )
|
||||
|
||||
# env.Append( LINKFLAGS = [ '-m32' ] )
|
||||
def CheckoutOrUpdate( self, svnurl, path ):
|
||||
if ( os.path.exists( path ) ):
|
||||
# NOTE: check the svnurl matches?
|
||||
cmd = 'svn update "%s"' % path
|
||||
print cmd
|
||||
else:
|
||||
cmd = 'svn checkout %s "%s"' % ( svnurl, path )
|
||||
ret = os.system( cmd )
|
||||
if ( ret != 0 ):
|
||||
raise 'checkout or update failed'
|
||||
|
||||
|
||||
def FetchGamePaks( self, path ):
|
||||
for pak in self.setup_packs:
|
||||
if ( pak == 'Q3Pack' or pak == 'UrTPack' ):
|
||||
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 )
|
||||
|
||||
# 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
|
||||
|
|
56
install/games/quake3/synapse.config
Normal file
56
install/games/quake3/synapse.config
Normal file
|
@ -0,0 +1,56 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
|
||||
<!-- synapse XML configuration -->
|
||||
<synapseconfig>
|
||||
<client name="core">
|
||||
<api name="image">
|
||||
tga jpg
|
||||
</api>
|
||||
<api name="VFS">
|
||||
pk3
|
||||
</api>
|
||||
<api name="shaders">
|
||||
quake3
|
||||
</api>
|
||||
<api name="map">
|
||||
mapq3
|
||||
</api>
|
||||
<api name="eclass">
|
||||
def
|
||||
</api>
|
||||
<api name="surfdialog">
|
||||
quake3
|
||||
</api>
|
||||
</client>
|
||||
<client name="image">
|
||||
<api name="VFS">
|
||||
pk3
|
||||
</api>
|
||||
</client>
|
||||
<client name="shaders">
|
||||
<!-- NOTE: this is a SYN_PROVIDE -->
|
||||
<api name="shaders">
|
||||
quake3
|
||||
</api>
|
||||
<api name="VFS">
|
||||
pk3
|
||||
</api>
|
||||
</client>
|
||||
<client name="map">
|
||||
<api name="shaders">
|
||||
quake3
|
||||
</api>
|
||||
</client>
|
||||
<client name="xmap">
|
||||
<api name="shaders">
|
||||
quake3
|
||||
</api>
|
||||
</client>
|
||||
<client name="model">
|
||||
<api name="shaders">
|
||||
quake3
|
||||
</api>
|
||||
<api name="VFS">
|
||||
pk3
|
||||
</api>
|
||||
</client>
|
||||
</synapseconfig>
|
|
@ -3244,10 +3244,10 @@ void CGameInstall::Run() {
|
|||
}
|
||||
fprintf( fg, "<?xml version=\"1.0\" encoding=\"iso-8859-1\" standalone=\"yes\"?>\n<game\n" );
|
||||
fprintf( fg, " name=\"%s\"\n", m_strName.GetBuffer() );
|
||||
fprintf( fg, " gametools=\"%sgames/%s\"\n", g_strAppPath.GetBuffer(), m_strName.GetBuffer() );
|
||||
fprintf( fg, " enginepath=\"%s\"\n", m_strEngine.GetBuffer() );
|
||||
switch ( m_availGames[ m_nComboSelect ] ) {
|
||||
case GAME_Q2: {
|
||||
fprintf( fg, " gametools=\"%sgames/quake2\"\n", g_strAppPath.GetBuffer() );
|
||||
fprintf( fg, " prefix=\".quake2\"\n" );
|
||||
Str source = g_strAppPath.GetBuffer();
|
||||
source += "installs/";
|
||||
|
@ -3258,6 +3258,7 @@ void CGameInstall::Run() {
|
|||
break;
|
||||
}
|
||||
case GAME_Q3: {
|
||||
fprintf( fg, " gametools=\"%sgames/quake3\"\n", g_strAppPath.GetBuffer() );
|
||||
fprintf( fg, " prefix=\".q3a\"\n" );
|
||||
Str source = g_strAppPath.GetBuffer();
|
||||
source += "installs/";
|
||||
|
@ -3268,6 +3269,7 @@ void CGameInstall::Run() {
|
|||
break;
|
||||
}
|
||||
case GAME_URT: {
|
||||
fprintf( fg, " gametools=\"%sgames/q3ut4\"\n", g_strAppPath.GetBuffer() );
|
||||
fprintf( fg, " prefix=\".q3a\"\n" );
|
||||
Str source = g_strAppPath.GetBuffer();
|
||||
source += "installs/";
|
||||
|
@ -3278,6 +3280,7 @@ void CGameInstall::Run() {
|
|||
break;
|
||||
}
|
||||
case GAME_UFOAI: {
|
||||
fprintf( fg, " gametools=\"%sgames/ufoai\"\n", g_strAppPath.GetBuffer() );
|
||||
fprintf( fg, " prefix=\".ufoai\"\n" );
|
||||
Str source = g_strAppPath.GetBuffer();
|
||||
source += "installs/";
|
||||
|
@ -3288,6 +3291,7 @@ void CGameInstall::Run() {
|
|||
break;
|
||||
}
|
||||
case GAME_Q2W: {
|
||||
fprintf( fg, " gametools=\"%sgames/q2w\"\n", g_strAppPath.GetBuffer() );
|
||||
fprintf( fg, " prefix=\".quake2world\"\n" );
|
||||
Str source = g_strAppPath.GetBuffer();
|
||||
source += "installs/";
|
||||
|
@ -3298,6 +3302,7 @@ void CGameInstall::Run() {
|
|||
break;
|
||||
}
|
||||
case GAME_WARSOW: {
|
||||
fprintf( fg, " gametools=\"%sgames/warsow\"\n", g_strAppPath.GetBuffer() );
|
||||
fprintf( fg, " prefix=\".warsow\"\n" );
|
||||
Str source = g_strAppPath.GetBuffer();
|
||||
source += "installs/";
|
||||
|
@ -3308,6 +3313,7 @@ void CGameInstall::Run() {
|
|||
break;
|
||||
}
|
||||
case GAME_NEXUIZ: {
|
||||
fprintf( fg, " gametools=\"%sgames/nexuiz\"\n", g_strAppPath.GetBuffer() );
|
||||
fprintf( fg, " prefix=\".nexuiz\"\n" );
|
||||
Str source = g_strAppPath.GetBuffer();
|
||||
source += "installs/";
|
||||
|
|
Loading…
Reference in a new issue