added plugins to win32/linux installers; fixed crash when plugins are disabled

git-svn-id: svn://svn.icculus.org/gtkradiant/GtkRadiant/trunk@63 8a3a26a2-13c4-0310-b231-cf6edde360e5
This commit is contained in:
spog 2006-05-13 12:25:54 +00:00
parent 8649824a42
commit 23cc0661e0
8 changed files with 93 additions and 49 deletions

View file

@ -8,6 +8,11 @@ LordHavoc
- Removed gcc explicit linking hack for non-final builds.
- Added workaround for gcc static-member-pointer-as-template-argument bug.
- Fixed bobtoolz linux compile errors.
- Added Nexuiz and Darkplaces support.
SPoG
- Changed 'inconsistent vertex count' assert to be non-fatal.
- Changed 'failed to remove accelerator' assert to be non-fatal.
- Fixed crash due to broken module dependencies.
30/04/2006
SPoG

View file

@ -1,17 +1,17 @@
# Copyright (C) 2001-2006 William Joseph.
#
#
# This file is part of GtkRadiant.
#
#
# GtkRadiant is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
#
# GtkRadiant is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
#
# You should have received a copy of the GNU General Public License
# along with GtkRadiant; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
@ -32,16 +32,16 @@ import shutil
def assertMessage(condition, message):
if not condition:
raise Exception(message)
def copyFile(source, target):
assertMessage(os.path.isfile(source), "failed to find file: " + source)
print source, "->", target
shutil.copy2(source, target)
def copyFileIfExists(source, target):
if os.path.exists(source):
copyFile(source, target)
def copySvn(source, target):
assertMessage(os.path.isdir(source), "failed to find directory: " + source)
if not os.path.exists(target):
@ -54,7 +54,7 @@ def copySvn(source, target):
copySvn(absolute, absTarget)
else:
copyFile(absolute, absTarget)
def copyGame(source, game, target):
assertMessage(os.path.isdir(source), "failed to find directory: " + source)
assertMessage(os.path.isdir(target), "failed to find directory: " + target)
@ -65,15 +65,15 @@ def copyGame(source, game, target):
gamesDir = os.path.join(target, "games")
if not os.path.exists(gamesDir):
os.mkdir(gamesDir)
copyFile(os.path.join(root, "games", gamename), os.path.join(gamesDir, gamename))
copyFile(os.path.join(root, "games", gamename), os.path.join(gamesDir, gamename))
thisDir = os.path.dirname(__file__)
gamesRoot = os.path.join(thisDir, "games")
installRoot = os.path.join(thisDir, "install")
if not os.path.exists(installRoot):
os.mkdir(installRoot)
# copy generic data
copySvn(os.path.join(thisDir, os.path.normpath("setup/data/tools")), installRoot)
@ -91,7 +91,9 @@ games = [
("Q4Pack/tools", "q4"),
("Sof2Pack", "sof2"),
("STVEFPack", "stvef"),
("WolfPack/bin", "wolf")
("WolfPack/bin", "wolf"),
("NexuizPack", "nexuiz"),
("DarkPlacesPack", "darkplaces")
]
# copy games
@ -102,16 +104,16 @@ for game in games:
gtk2Root = os.path.normpath(os.path.join(thisDir, "../gtk2-2.4"))
if os.path.exists(gtk2Root):
copySvn(os.path.join(gtk2Root, "install"), installRoot)
libxml2 = os.path.normpath(os.path.join(thisDir, "../libxml2-2.6/win32/install/libxml2.dll"))
copyFileIfExists(libxml2, installRoot)
libpng = os.path.normpath(os.path.join(thisDir, "../libpng-1.2/lib/libpng13.dll"))
copyFileIfExists(libpng, installRoot)
libmhash = os.path.normpath(os.path.join(thisDir, "../mhash-0.9/win32/libmhash/Release/libmhash.dll"))
copyFileIfExists(libmhash, installRoot)
zlib = os.path.normpath(os.path.join(thisDir, "../zlib1-1.2/zlib1.dll"))
copyFileIfExists(zlib, installRoot)

View file

@ -498,14 +498,14 @@ void special_accelerators_add(Accelerator accelerator, const Callback& callback)
{
if(!accelerator_map_insert(g_special_accelerators, accelerator, callback))
{
globalErrorStream() << "special_accelerators_add: already exists: " << makeQuoted(accelerator);
globalErrorStream() << "special_accelerators_add: already exists: " << makeQuoted(accelerator) << "\n";
}
}
void special_accelerators_remove(Accelerator accelerator)
{
if(!accelerator_map_erase(g_special_accelerators, accelerator))
{
globalErrorStream() << "special_accelerators_remove: not found: " << makeQuoted(accelerator);
globalErrorStream() << "special_accelerators_remove: not found: " << makeQuoted(accelerator) << "\n";
}
}
@ -513,14 +513,14 @@ void keydown_accelerators_add(Accelerator accelerator, const Callback& callback)
{
if(!accelerator_map_insert(g_keydown_accelerators, accelerator, callback))
{
globalErrorStream() << "keydown_accelerators_add: already exists: " << makeQuoted(accelerator);
globalErrorStream() << "keydown_accelerators_add: already exists: " << makeQuoted(accelerator) << "\n";
}
}
void keydown_accelerators_remove(Accelerator accelerator)
{
if(!accelerator_map_erase(g_keydown_accelerators, accelerator))
{
globalErrorStream() << "keydown_accelerators_remove: not found: " << makeQuoted(accelerator);
globalErrorStream() << "keydown_accelerators_remove: not found: " << makeQuoted(accelerator) << "\n";
}
}
@ -528,14 +528,14 @@ void keyup_accelerators_add(Accelerator accelerator, const Callback& callback)
{
if(!accelerator_map_insert(g_keyup_accelerators, accelerator, callback))
{
globalErrorStream() << "keyup_accelerators_add: already exists: " << makeQuoted(accelerator);
globalErrorStream() << "keyup_accelerators_add: already exists: " << makeQuoted(accelerator) << "\n";
}
}
void keyup_accelerators_remove(Accelerator accelerator)
{
if(!accelerator_map_erase(g_keyup_accelerators, accelerator))
{
globalErrorStream() << "keyup_accelerators_remove: not found: " << makeQuoted(accelerator);
globalErrorStream() << "keyup_accelerators_remove: not found: " << makeQuoted(accelerator) << "\n";
}
}

View file

@ -675,6 +675,9 @@ copy &quot;$(TargetDir)$(TargetName).pdb&quot; &quot;$(SolutionDir)install&quot
Outputs="&quot;$(TargetDir)$(TargetName).pdb&quot;"/>
</FileConfiguration>
</File>
<File
RelativePath="..\install.py">
</File>
<File
RelativePath=".\radiant.ico">
</File>

View file

@ -270,14 +270,17 @@ void Brush::buildBRep()
}
}
ASSERT_MESSAGE((uniqueVertices.size() + faces_size) - uniqueEdges.size() == 2, "Final B-Rep: inconsistent vertex count");
if((uniqueVertices.size() + faces_size) - uniqueEdges.size() != 2)
{
globalErrorStream() << "Final B-Rep: inconsistent vertex count\n";
}
#if BRUSH_CONNECTIVITY_DEBUG
if((uniqueVertices.size() + faces_size) - uniqueEdges.size() != 2)
{
for(Faces::iterator i = m_faces.begin(); i != m_faces.end(); ++i)
{
std::size_t faceIndex = std::distance(m_faces.begin(), i);
std::size_t faceIndex = std::distance(m_faces.begin(), i);
if(!(*i)->contributes())
{

View file

@ -2629,7 +2629,32 @@ void OpenGLShader::construct(const char* name)
#include "modulesystem/singletonmodule.h"
#include "modulesystem/moduleregistry.h"
class ShaderCacheDependencies : public GlobalShadersModuleRef, public GlobalTexturesModuleRef
class OpenGLStateLibraryAPI
{
OpenGLStateMap m_stateMap;
public:
typedef OpenGLStateLibrary Type;
STRING_CONSTANT(Name, "*");
OpenGLStateLibraryAPI()
{
g_openglStates = &m_stateMap;
}
~OpenGLStateLibraryAPI()
{
g_openglStates = 0;
}
OpenGLStateLibrary* getTable()
{
return &m_stateMap;
}
};
typedef SingletonModule<OpenGLStateLibraryAPI> OpenGLStateLibraryModule;
typedef Static<OpenGLStateLibraryModule> StaticOpenGLStateLibraryModule;
StaticRegisterModule staticRegisterOpenGLStateLibrary(StaticOpenGLStateLibraryModule::instance());
class ShaderCacheDependencies : public GlobalShadersModuleRef, public GlobalTexturesModuleRef, public GlobalOpenGLStateLibraryModuleRef
{
public:
ShaderCacheDependencies() :
@ -2666,27 +2691,3 @@ typedef Static<ShaderCacheModule> StaticShaderCacheModule;
StaticRegisterModule staticRegisterShaderCache(StaticShaderCacheModule::instance());
class OpenGLStateLibraryAPI
{
OpenGLStateMap m_stateMap;
public:
typedef OpenGLStateLibrary Type;
STRING_CONSTANT(Name, "*");
OpenGLStateLibraryAPI()
{
g_openglStates = &m_stateMap;
}
~OpenGLStateLibraryAPI()
{
g_openglStates = 0;
}
OpenGLStateLibrary* getTable()
{
return &m_stateMap;
}
};
typedef SingletonModule<OpenGLStateLibraryAPI> OpenGLStateLibraryModule;
typedef Static<OpenGLStateLibraryModule> StaticOpenGLStateLibraryModule;
StaticRegisterModule staticRegisterOpenGLStateLibrary(StaticOpenGLStateLibraryModule::instance());

View file

@ -70,6 +70,8 @@ cp games/Q3Pack/tools/games/q3.game $RPM_BUILD_ROOT%{installdir}/games
cp games/Doom3Pack/tools/games/doom3.game $RPM_BUILD_ROOT%{installdir}/games
cp games/Q4Pack/tools/games/q4.game $RPM_BUILD_ROOT%{installdir}/games
cp games/JAPack/Tools/games/ja.game $RPM_BUILD_ROOT%{installdir}/games
cp games/NexuizPack/games/nexuiz.game $RPM_BUILD_ROOT%{installdir}/games
cp games/DarkPlacesPack/games/darkplaces.game $RPM_BUILD_ROOT%{installdir}/games
mkdir $RPM_BUILD_ROOT%{installdir}/modules
cp install/modules/entity.so $RPM_BUILD_ROOT%{installdir}/modules
cp install/modules/model.so $RPM_BUILD_ROOT%{installdir}/modules
@ -85,6 +87,10 @@ cp install/modules/imagepng.so $RPM_BUILD_ROOT%{installdir}/modules
cp install/modules/imageq2.so $RPM_BUILD_ROOT%{installdir}/modules
cp install/modules/mapq3.so $RPM_BUILD_ROOT%{installdir}/modules
cp install/modules/archivewad.so $RPM_BUILD_ROOT%{installdir}/modules
cp install/plugins/prtview.so $RPM_BUILD_ROOT%{installdir}/prtview
cp install/plugins/bobtoolz.so $RPM_BUILD_ROOT%{installdir}/plugins
cp install/plugins/bt/*.txt $RPM_BUILD_ROOT%{installdir}/plugins/bt
cp install/plugins/bitmaps/bobtoolz_*.bmp $RPM_BUILD_ROOT%{installdir}/plugins/bitmaps
mkdir $RPM_BUILD_ROOT%{installdir}/q1.game
cp games/Q1Pack/q1.game/default_build_menu.xml $RPM_BUILD_ROOT%{installdir}/q1.game
mkdir $RPM_BUILD_ROOT%{installdir}/q1.game/id1
@ -105,6 +111,18 @@ mkdir $RPM_BUILD_ROOT%{installdir}/q3.game/baseq3
cp games/Q3Pack/tools/q3.game/baseq3/entities.ent $RPM_BUILD_ROOT%{installdir}/q3.game/baseq3
cp games/Q3Pack/tools/q3.game/baseq3/default_shaderlist.txt $RPM_BUILD_ROOT%{installdir}/q3.game/baseq3
cp games/Q3Pack/tools/q3.game/baseq3/entities.def $RPM_BUILD_ROOT%{installdir}/q3.game/baseq3
mkdir $RPM_BUILD_ROOT%{installdir}/nexuiz.game
cp games/NexuizPack/nexuiz.game/game.xlink $RPM_BUILD_ROOT%{installdir}/nexuiz.game
cp games/NexuizPack/nexuiz.game/default_build_menu.xml $RPM_BUILD_ROOT%{installdir}/nexuiz.game
mkdir $RPM_BUILD_ROOT%{installdir}/nexuiz.game/data
cp games/NexuizPack/nexuiz.game/data/default_shaderlist.txt $RPM_BUILD_ROOT%{installdir}/nexuiz.game/data
cp games/NexuizPack/nexuiz.game/data/entities.def $RPM_BUILD_ROOT%{installdir}/nexuiz.game/data
mkdir $RPM_BUILD_ROOT%{installdir}/darkplaces.game
cp games/DarkPlacesPack/darkplaces.game/game.xlink $RPM_BUILD_ROOT%{installdir}/darkplaces.game
cp games/DarkPlacesPack/darkplaces.game/default_build_menu.xml $RPM_BUILD_ROOT%{installdir}/darkplaces.game
mkdir $RPM_BUILD_ROOT%{installdir}/darkplaces.game/id1
cp games/DarkPlacesPack/darkplaces.game/id1/default_shaderlist.txt $RPM_BUILD_ROOT%{installdir}/darkplaces.game/id1
cp games/DarkPlacesPack/darkplaces.game/id1/entities.ent $RPM_BUILD_ROOT%{installdir}/darkplaces.game/id1
mkdir $RPM_BUILD_ROOT%{installdir}/bitmaps
cp setup/data/tools/bitmaps/view_cubicclipping.bmp $RPM_BUILD_ROOT%{installdir}/bitmaps
cp setup/data/tools/bitmaps/cap_endcap.bmp $RPM_BUILD_ROOT%{installdir}/bitmaps

View file

@ -36,6 +36,12 @@
<component name=".\components\mapq3.xml" root="..\..\install"/>
<component name=".\components\mapxml.xml" root="..\..\install"/>
<feature name="BobToolz Plugin" desc="Bob's tools for Enemy Territory">
<component name=".\components\bobtoolz.xml" root="..\..\install"/>
</feature>
<feature name="PrtView Plugin" desc="Geoffrey Dewan's Portal Viewer">
<component name=".\components\prtview.xml" root="..\..\install"/>
</feature>
<feature name="GtkRadiant Editor Manual" desc="Documentation for GtkRadiant users.">
<component name=".\components\radiant_manual.xml" root="..\..\docs\manual"/>
</feature>
@ -92,5 +98,11 @@
<feature name="Half-Life Support" desc="Support for Half-Life.">
<component name=".\components\hl.xml" root="..\..\games\HalfLifePack"/>
</feature>
<feature name="Nexuiz Support" desc="Support for Nexuiz.">
<component name=".\components\nexuiz.xml" root="..\..\games\NexuizPack"/>
</feature>
<feature name="DarkPlaces Support" desc="Support for DarkPlaces Quake.">
<component name=".\components\darkplaces.xml" root="..\..\games\DarkPlacesPack"/>
</feature>
</feature>
</package>