Merge branch 'osx_fix'
commit
f6d657a5f4
@ -0,0 +1,37 @@
|
|||||||
|
#include "ogreplugin.hpp"
|
||||||
|
|
||||||
|
#include <OgrePrerequisites.h>
|
||||||
|
#include <OgreRoot.h>
|
||||||
|
|
||||||
|
namespace Files {
|
||||||
|
|
||||||
|
bool loadOgrePlugin(const std::string &pluginDir, std::string pluginName, Ogre::Root &ogreRoot) {
|
||||||
|
pluginName = pluginName + OGRE_PLUGIN_DEBUG_SUFFIX;
|
||||||
|
#if OGRE_PLATFORM == OGRE_PLATFORM_APPLE
|
||||||
|
std::ostringstream verStream;
|
||||||
|
verStream << "." << OGRE_VERSION_MAJOR << "." << OGRE_VERSION_MINOR << "." << OGRE_VERSION_PATCH;
|
||||||
|
pluginName = pluginName + verStream.str();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
std::string pluginExt;
|
||||||
|
#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
|
||||||
|
pluginExt = ".dll";
|
||||||
|
#endif
|
||||||
|
#if OGRE_PLATFORM == OGRE_PLATFORM_APPLE
|
||||||
|
pluginExt = ".dylib";
|
||||||
|
#endif
|
||||||
|
#if OGRE_PLATFORM == OGRE_PLATFORM_LINUX
|
||||||
|
pluginExt = ".so";
|
||||||
|
#endif
|
||||||
|
|
||||||
|
std::string pluginPath = pluginDir + "/" + pluginName + pluginExt;
|
||||||
|
if (boost::filesystem::exists(pluginPath)) {
|
||||||
|
ogreRoot.loadPlugin(pluginPath);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,64 @@
|
|||||||
|
/**
|
||||||
|
* Open Morrowind - an opensource Elder Scrolls III: Morrowind
|
||||||
|
* engine implementation.
|
||||||
|
*
|
||||||
|
* Copyright (C) 2011 Open Morrowind Team
|
||||||
|
*
|
||||||
|
* This program 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 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** \file components/files/ogreplugin.hpp */
|
||||||
|
|
||||||
|
#ifndef COMPONENTS_FILES_OGREPLUGIN_H
|
||||||
|
#define COMPONENTS_FILES_OGREPLUGIN_H
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
#include <boost/filesystem.hpp>
|
||||||
|
#include <boost/version.hpp>
|
||||||
|
|
||||||
|
namespace Ogre {
|
||||||
|
class Root;
|
||||||
|
}
|
||||||
|
|
||||||
|
#if (BOOST_VERSION <= 104300)
|
||||||
|
namespace boost {
|
||||||
|
namespace filesystem {
|
||||||
|
inline path absolute(const path& p, const path& base=current_path()) {
|
||||||
|
// call obsolete version of this function on older boost
|
||||||
|
return complete(p, base);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif /* (BOOST_VERSION <= 104300) */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \namespace Files
|
||||||
|
*/
|
||||||
|
namespace Files {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Loads Ogre plugin with given name.
|
||||||
|
*
|
||||||
|
* \param pluginDir absolute path to plugins
|
||||||
|
* \param pluginName plugin name, for example "RenderSystem_GL"
|
||||||
|
* \param ogreRoot Ogre::Root instance
|
||||||
|
*
|
||||||
|
* \return whether plugin was located or not
|
||||||
|
*/
|
||||||
|
bool loadOgrePlugin(const std::string &pluginDir, std::string pluginName, Ogre::Root &ogreRoot);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* COMPONENTS_FILES_OGREPLUGIN_H */
|
Loading…
Reference in New Issue