mirror of
https://github.com/TTimo/GtkRadiant.git
synced 2025-01-09 11:30:51 +00:00
Merge branch 'master' of https://github.com/TTimo/GtkRadiant
This commit is contained in:
commit
b992d051fb
5 changed files with 71 additions and 4 deletions
33
apple/README.md
Normal file
33
apple/README.md
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
GtkRadiant for Apple OSX
|
||||||
|
====
|
||||||
|
This directory provides packaging steps for GtkRadiant for OSX. This document describes compiling the application on OSX as well as generating distributable bundles using the framework provided in this directory.
|
||||||
|
|
||||||
|
Dependencies & Compilation
|
||||||
|
----
|
||||||
|
Compiling GtkRadiant on OSX requires [MacPorts](http://macports.org). Homebrew is not yet supported. Install the following dependencies:
|
||||||
|
|
||||||
|
sudo port install dylibbundler gcc47 gtkglext scons
|
||||||
|
|
||||||
|
You should then be able to compile and run GtkRadiant from the `install` directory.
|
||||||
|
|
||||||
|
scons config=debug
|
||||||
|
./install/radiant.bin &
|
||||||
|
|
||||||
|
See the [GtkRadiant developers guide]() for details on build configurations and targets.
|
||||||
|
|
||||||
|
Building GtkRadiant.app
|
||||||
|
----
|
||||||
|
The `Makefile` in this directory will produce a distributable .app bundle for GtkRadiant using `dylibbundler`:
|
||||||
|
|
||||||
|
make
|
||||||
|
make image
|
||||||
|
|
||||||
|
You may encounter an error or two as `dylibbundler` attempts to fix up shared libraries that GtkRadiant depends on. This is because `dylibbundler` attempts to rewrite the load commands in these libraries, but not all libraries have enough space allocated for this purpose. Recompile the relevant ports with additional header space.
|
||||||
|
|
||||||
|
For example:
|
||||||
|
|
||||||
|
export LDFLAGS=-headerpad_max_install_names
|
||||||
|
sudo port clean --work --archive pango
|
||||||
|
sudo port -n upgrade --force pango
|
||||||
|
|
||||||
|
Repeat this process for any shared libraries which `dylibbundler` complains about. As of July 2nd 2013, Pango is the only port requiring this treatment.
|
|
@ -28,7 +28,7 @@ class Config:
|
||||||
# platforms for which to assemble a setup
|
# platforms for which to assemble a setup
|
||||||
self.setup_platforms = [ 'local', 'x86', 'x64', 'win32' ]
|
self.setup_platforms = [ 'local', 'x86', 'x64', 'win32' ]
|
||||||
# paks to assemble in the setup
|
# paks to assemble in the setup
|
||||||
self.setup_packs = [ 'Q3Pack', 'UrTPack', 'ETPack', 'QLPack', 'Q2Pack', 'Q2WPack' ]
|
self.setup_packs = [ 'Q3Pack', 'UrTPack', 'ETPack', 'QLPack', 'Q2Pack', 'Q2WPack', 'JAPack', 'STVEFPack' ]
|
||||||
|
|
||||||
def __repr__( self ):
|
def __repr__( self ):
|
||||||
return 'config: target=%s config=%s' % ( self.target_selected, self.config_selected )
|
return 'config: target=%s config=%s' % ( self.target_selected, self.config_selected )
|
||||||
|
@ -388,6 +388,7 @@ class Config:
|
||||||
'%s/bin/libpng14-14.dll' % GTK64_PREFIX,
|
'%s/bin/libpng14-14.dll' % GTK64_PREFIX,
|
||||||
'%s/bin/libglib-2.0-0.dll' % GTK64_PREFIX,
|
'%s/bin/libglib-2.0-0.dll' % GTK64_PREFIX,
|
||||||
'%s/bin/libintl-8.dll' % GTK64_PREFIX,
|
'%s/bin/libintl-8.dll' % GTK64_PREFIX,
|
||||||
|
'%s/bin/zlib1.dll' % GTK64_PREFIX,
|
||||||
]:
|
]:
|
||||||
shutil.copy( os.path.join( srcdir, x64_dll ), 'install/x64' )
|
shutil.copy( os.path.join( srcdir, x64_dll ), 'install/x64' )
|
||||||
|
|
||||||
|
@ -526,4 +527,4 @@ class TestConfigParse( unittest.TestCase ):
|
||||||
print repr( configs )
|
print repr( configs )
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|
|
@ -382,7 +382,8 @@ void Eclass_Init(){
|
||||||
if ( !strcmp( ValueForKey( g_qeglobals.d_project_entity, "gamemode" ), "sp" ) ) {
|
if ( !strcmp( ValueForKey( g_qeglobals.d_project_entity, "gamemode" ), "sp" ) ) {
|
||||||
// SP mapping, ignore mp_*.def
|
// SP mapping, ignore mp_*.def
|
||||||
char *name = (char *)pFile->data;
|
char *name = (char *)pFile->data;
|
||||||
if ( name[0] == 'm' && name[1] == 'p' && name[2] == '_' ) {
|
if ( name[0] == 'm' && name[1] == 'p' && name[2] == '_'
|
||||||
|
|| name[0] == 'h' && name[1] == 'm' && name[2] == '_' ) {
|
||||||
Sys_Printf( "Single Player mapping mode. Ignoring '%s'\n", name );
|
Sys_Printf( "Single Player mapping mode. Ignoring '%s'\n", name );
|
||||||
pFile = pFile->next;
|
pFile = pFile->next;
|
||||||
continue;
|
continue;
|
||||||
|
@ -392,7 +393,7 @@ void Eclass_Init(){
|
||||||
{
|
{
|
||||||
// HM mapping, ignore sp_*.def
|
// HM mapping, ignore sp_*.def
|
||||||
char *name = (char *)pFile->data;
|
char *name = (char *)pFile->data;
|
||||||
if ( name[0] == 'h' && name[1] == 'm' && name[2] == '_' ) {
|
if ( name[0] == 's' && name[1] == 'p' && name[2] == '_' ) {
|
||||||
Sys_Printf( "HoloMatch mapping mode. Ignoring '%s'\n", name );
|
Sys_Printf( "HoloMatch mapping mode. Ignoring '%s'\n", name );
|
||||||
pFile = pFile->next;
|
pFile = pFile->next;
|
||||||
continue;
|
continue;
|
||||||
|
|
|
@ -3376,6 +3376,9 @@ void CGameInstall::BuildDialog() {
|
||||||
case GAME_QL:
|
case GAME_QL:
|
||||||
gtk_combo_box_append_text( GTK_COMBO_BOX( combo ), _( "Quake Live" ) );
|
gtk_combo_box_append_text( GTK_COMBO_BOX( combo ), _( "Quake Live" ) );
|
||||||
break;
|
break;
|
||||||
|
case GAME_STVEF:
|
||||||
|
gtk_combo_box_append_text( GTK_COMBO_BOX( combo ), _( "Star Trek - Voyager: Elite Force" ) );
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
iGame++;
|
iGame++;
|
||||||
}
|
}
|
||||||
|
@ -3490,6 +3493,9 @@ void CGameInstall::Run() {
|
||||||
case GAME_QL:
|
case GAME_QL:
|
||||||
gameFilePath += "ql.game";
|
gameFilePath += "ql.game";
|
||||||
break;
|
break;
|
||||||
|
case GAME_STVEF:
|
||||||
|
gameFilePath += "stvef.game";
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
Sys_Printf( "game file: %s\n", gameFilePath.GetBuffer() );
|
Sys_Printf( "game file: %s\n", gameFilePath.GetBuffer() );
|
||||||
|
@ -3685,6 +3691,27 @@ void CGameInstall::Run() {
|
||||||
fprintf( fg, " basegame=\"baseq3\"\n" );
|
fprintf( fg, " basegame=\"baseq3\"\n" );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case GAME_STVEF: {
|
||||||
|
fprintf( fg, " "TOOLS_ATTRIBUTE "=\"%sinstalls/"STVEF_PACK "/game\"\n", g_strAppPath.GetBuffer() );
|
||||||
|
fprintf( fg, " prefix=\".stvef\"\n" );
|
||||||
|
Str source = g_strAppPath.GetBuffer();
|
||||||
|
source += "installs/";
|
||||||
|
source += STVEF_PACK;
|
||||||
|
source += "/install/";
|
||||||
|
Str dest = m_strEngine.GetBuffer();
|
||||||
|
radCopyTree( source.GetBuffer(), dest.GetBuffer() );
|
||||||
|
// Hardcoded fix for "missing" shaderlist in gamepack
|
||||||
|
dest += "/base/scripts/shaderlist.txt";
|
||||||
|
if(CheckFile(dest.GetBuffer()) != PATH_FILE) {
|
||||||
|
source += "base/scripts/default_shaderlist.txt";
|
||||||
|
radCopyFile(source.GetBuffer(),dest.GetBuffer());
|
||||||
|
}
|
||||||
|
fprintf( fg, " basegame=\"baseEF\"\n" );
|
||||||
|
fprintf( fg, " shaderpath=\"scripts\"\n" );
|
||||||
|
fprintf( fg, " default_scale=\"0.25\"\n" );
|
||||||
|
fprintf( fg, " caulk_shader=\"textures/common/caulk\"\n" );
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
fprintf( fg, "/>\n" );
|
fprintf( fg, "/>\n" );
|
||||||
fclose( fg );
|
fclose( fg );
|
||||||
|
@ -3740,6 +3767,9 @@ void CGameInstall::ScanGames() {
|
||||||
if ( stricmp( dirname, QL_PACK ) == 0 ) {
|
if ( stricmp( dirname, QL_PACK ) == 0 ) {
|
||||||
m_availGames[ iGame++ ] = GAME_QL;
|
m_availGames[ iGame++ ] = GAME_QL;
|
||||||
}
|
}
|
||||||
|
if ( stricmp( dirname, STVEF_PACK ) == 0 ) {
|
||||||
|
m_availGames[ iGame++ ] = GAME_STVEF;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Sys_Printf( "No installable games found in: %s\n",
|
Sys_Printf( "No installable games found in: %s\n",
|
||||||
pakPaths.GetBuffer() );
|
pakPaths.GetBuffer() );
|
||||||
|
|
|
@ -213,6 +213,7 @@ void Dump();
|
||||||
#define REACTION_PACK "ReactionPack"
|
#define REACTION_PACK "ReactionPack"
|
||||||
#define ET_PACK "ETPack"
|
#define ET_PACK "ETPack"
|
||||||
#define QL_PACK "QLPack"
|
#define QL_PACK "QLPack"
|
||||||
|
#define STVEF_PACK "STVEFPack"
|
||||||
|
|
||||||
class CGameInstall : public Dialog {
|
class CGameInstall : public Dialog {
|
||||||
public:
|
public:
|
||||||
|
@ -238,6 +239,7 @@ enum gameType_e {
|
||||||
GAME_REACTION,
|
GAME_REACTION,
|
||||||
GAME_ET,
|
GAME_ET,
|
||||||
GAME_QL,
|
GAME_QL,
|
||||||
|
GAME_STVEF,
|
||||||
GAME_COUNT
|
GAME_COUNT
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue