From: <tz...@us...> - 2009-05-22 04:20:30
|
Revision: 3078 http://freeorion.svn.sourceforge.net/freeorion/revision/?rev=3078&view=rev Author: tzlaine Date: 2009-05-22 04:20:15 +0000 (Fri, 22 May 2009) Log Message: ----------- Added code to properly handle the use of the OIS input plugin when statically linked to it. Modified Paths: -------------- trunk/FreeOrion/SConstruct trunk/FreeOrion/client/human/chmain.cpp Modified: trunk/FreeOrion/SConstruct =================================================================== --- trunk/FreeOrion/SConstruct 2009-05-22 02:24:36 UTC (rev 3077) +++ trunk/FreeOrion/SConstruct 2009-05-22 04:20:15 UTC (rev 3078) @@ -29,7 +29,7 @@ options.Add(BoolOption('debug', 'Generate debug code', 0)) options.Add(BoolOption('multithreaded', 'Generate multithreaded code', 1)) if str(Platform()) == 'win32': - options.Add(BoolOption('dynamic', 'Generate a dynamic-link code', 1)) + options.Add(BoolOption('dynamic', 'Generate dynamic-link code', 1)) if WhereIs('ccache'): options.Add(BoolOption('use_ccache', 'Use ccache to build GG', 0)) if WhereIs('distcc'): @@ -232,6 +232,8 @@ if pkg_config: if conf.CheckPkg('GiGiOgre', gigi_version): env.ParseConfig('pkg-config --cflags --libs GiGiOgre') + if 'OGRE_STATIC_LIB' in env['CPPDEFINES']: + env.AppendUnique(LIBS = 'GiGiOgrePlugin_OIS') found_gg_pkg_config = True freeorion_boost_libs = [ Modified: trunk/FreeOrion/client/human/chmain.cpp =================================================================== --- trunk/FreeOrion/client/human/chmain.cpp 2009-05-22 02:24:36 UTC (rev 3077) +++ trunk/FreeOrion/client/human/chmain.cpp 2009-05-22 04:20:15 UTC (rev 3078) @@ -5,6 +5,8 @@ #include "../../util/XMLDoc.h" #include "../../util/MultiplayerCommon.h" +#include <GG/Ogre/Plugins/OISInput.h> + #include <OgreCamera.h> #include <OgreLogManager.h> #include <OgreRenderSystem.h> @@ -94,6 +96,7 @@ Ogre::LogManager* log_manager = 0; Ogre::Root* root = 0; + OISInput* ois_input_plugin = 0; try { using namespace Ogre; @@ -141,7 +144,12 @@ viewport->setBackgroundColour(ColourValue(0, 0, 0)); HumanClientApp app(root, window, scene_manager, camera, viewport); +#ifdef OGRE_STATIC_LIB + ois_input_plugin = new OISInput; + root->installPlugin(ois_input_plugin); +#else root->loadPlugin(OGRE_INPUT_PLUGIN_NAME); +#endif app(); } catch (const HumanClientApp::CleanQuit&) { // do nothing @@ -163,7 +171,12 @@ } if (root) { +#ifdef OGRE_STATIC_LIB + root->uninstallPlugin(ois_input_plugin); + delete ois_input_plugin; +#else root->unloadPlugin(OGRE_INPUT_PLUGIN_NAME); +#endif delete root; } |