mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-01-30 15:15:31 +00:00
Builds on OS X now
This commit is contained in:
parent
3b47eb4a69
commit
4028600768
7 changed files with 33 additions and 18 deletions
|
@ -273,7 +273,7 @@ configure_file(${OpenMW_SOURCE_DIR}/files/openmw.cfg
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
set(APPLE_BUNDLE_RESOURCES
|
set(APPLE_BUNDLE_RESOURCES
|
||||||
${CMAKE_SOURCE_DIR}/files/openmw.cfg
|
${CMAKE_SOURCE_DIR}/files/openmw.cfg
|
||||||
${CMAKE_SOURCE_DIR}/files/mac/plugins.cfg
|
${CMAKE_SOURCE_DIR}/files/plugins.cfg.mac
|
||||||
)
|
)
|
||||||
endif (APPLE)
|
endif (APPLE)
|
||||||
|
|
||||||
|
@ -287,12 +287,7 @@ endif (CMAKE_COMPILER_IS_GNUCC)
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
set(MISC_FILES
|
set(MISC_FILES
|
||||||
${CMAKE_SOURCE_DIR}/files/openmw.cfg
|
${CMAKE_SOURCE_DIR}/files/openmw.cfg
|
||||||
${CMAKE_SOURCE_DIR}/files/mac/plugins.cfg
|
${CMAKE_SOURCE_DIR}/files/plugins.cfg.mac)
|
||||||
${CMAKE_SOURCE_DIR}/files/mac/ogre.cfg)
|
|
||||||
install(TARGETS openmw
|
|
||||||
BUNDLE DESTINATION .
|
|
||||||
RUNTIME DESTINATION ../MacOS
|
|
||||||
COMPONENT Runtime)
|
|
||||||
install(FILES ${MISC_FILES} DESTINATION ../MacOS)
|
install(FILES ${MISC_FILES} DESTINATION ../MacOS)
|
||||||
set(CPACK_GENERATOR "Bundle")
|
set(CPACK_GENERATOR "Bundle")
|
||||||
set(CPACK_BUNDLE_PLIST "${CMAKE_SOURCE_DIR}/files/mac/Info.plist")
|
set(CPACK_BUNDLE_PLIST "${CMAKE_SOURCE_DIR}/files/mac/Info.plist")
|
||||||
|
|
|
@ -242,6 +242,10 @@ target_link_libraries(openmw
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
find_library(CARBON_FRAMEWORK Carbon)
|
find_library(CARBON_FRAMEWORK Carbon)
|
||||||
target_link_libraries(openmw ${CARBON_FRAMEWORK})
|
target_link_libraries(openmw ${CARBON_FRAMEWORK})
|
||||||
|
install(TARGETS openmw
|
||||||
|
BUNDLE DESTINATION .
|
||||||
|
RUNTIME DESTINATION ../MacOS
|
||||||
|
COMPONENT Runtime)
|
||||||
endif (APPLE)
|
endif (APPLE)
|
||||||
|
|
||||||
if(DPKG_PROGRAM)
|
if(DPKG_PROGRAM)
|
||||||
|
|
|
@ -13,7 +13,7 @@ std::string OMW::Path::getPath(PathTypeEnum parType, const std::string parApp, c
|
||||||
if(parType == GLOBAL_CFG_PATH)
|
if(parType == GLOBAL_CFG_PATH)
|
||||||
{
|
{
|
||||||
#if OGRE_PLATFORM == OGRE_PLATFORM_APPLE
|
#if OGRE_PLATFORM == OGRE_PLATFORM_APPLE
|
||||||
theBasePath = macBundlePath() + "/Contents/MacOS/"; //FIXME do we have global/local with OSX?
|
theBasePath = Ogre::macBundlePath() + "/Contents/MacOS/"; //FIXME do we have global/local with OSX?
|
||||||
#elif OGRE_PLATFORM == OGRE_PLATFORM_LINUX
|
#elif OGRE_PLATFORM == OGRE_PLATFORM_LINUX
|
||||||
theBasePath = "/etc/"+parApp+"/";
|
theBasePath = "/etc/"+parApp+"/";
|
||||||
#else
|
#else
|
||||||
|
@ -24,7 +24,7 @@ std::string OMW::Path::getPath(PathTypeEnum parType, const std::string parApp, c
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#if OGRE_PLATFORM == OGRE_PLATFORM_APPLE
|
#if OGRE_PLATFORM == OGRE_PLATFORM_APPLE
|
||||||
theBasePath = macBundlePath() + "/Contents/MacOS/"; //FIXME do we have global/local with OSX?
|
theBasePath = Ogre::macBundlePath() + "/Contents/MacOS/"; //FIXME do we have global/local with OSX?
|
||||||
#elif OGRE_PLATFORM == OGRE_PLATFORM_LINUX
|
#elif OGRE_PLATFORM == OGRE_PLATFORM_LINUX
|
||||||
const char* theDir;
|
const char* theDir;
|
||||||
if ((theDir = getenv("OPENMW_HOME")) != NULL)
|
if ((theDir = getenv("OPENMW_HOME")) != NULL)
|
||||||
|
|
|
@ -4,6 +4,10 @@
|
||||||
#include <OgrePlatform.h>
|
#include <OgrePlatform.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
#if OGRE_PLATFORM == OGRE_PLATFORM_APPLE
|
||||||
|
#include <OSX/macUtils.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace OMW
|
namespace OMW
|
||||||
{
|
{
|
||||||
class Path
|
class Path
|
||||||
|
|
|
@ -259,11 +259,11 @@ namespace ESMS
|
||||||
int getSize() { return count; }
|
int getSize() { return count; }
|
||||||
|
|
||||||
// List of interior cells. Indexed by cell name.
|
// List of interior cells. Indexed by cell name.
|
||||||
typedef std::map<std::string,Cell*, ciLessBoost> IntCells;
|
typedef std::map<std::string,ESM::Cell*, ciLessBoost> IntCells;
|
||||||
IntCells intCells;
|
IntCells intCells;
|
||||||
|
|
||||||
// List of exterior cells. Indexed as extCells[gridX][gridY].
|
// List of exterior cells. Indexed as extCells[gridX][gridY].
|
||||||
typedef std::map<int, Cell*> ExtCellsCol;
|
typedef std::map<int, ESM::Cell*> ExtCellsCol;
|
||||||
typedef std::map<int, ExtCellsCol> ExtCells;
|
typedef std::map<int, ExtCellsCol> ExtCells;
|
||||||
ExtCells extCells;
|
ExtCells extCells;
|
||||||
|
|
||||||
|
@ -283,7 +283,7 @@ namespace ESMS
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const Cell* findInt(const std::string &id) const
|
const ESM::Cell* findInt(const std::string &id) const
|
||||||
{
|
{
|
||||||
IntCells::const_iterator it = intCells.find(id);
|
IntCells::const_iterator it = intCells.find(id);
|
||||||
|
|
||||||
|
@ -293,7 +293,7 @@ namespace ESMS
|
||||||
return it->second;
|
return it->second;
|
||||||
}
|
}
|
||||||
|
|
||||||
const Cell *searchExt (int x, int y) const
|
const ESM::Cell *searchExt (int x, int y) const
|
||||||
{
|
{
|
||||||
ExtCells::const_iterator it = extCells.find (x);
|
ExtCells::const_iterator it = extCells.find (x);
|
||||||
|
|
||||||
|
@ -308,7 +308,7 @@ namespace ESMS
|
||||||
return it2->second;
|
return it2->second;
|
||||||
}
|
}
|
||||||
|
|
||||||
const Cell *searchExtByName (const std::string& id) const
|
const ESM::Cell *searchExtByName (const std::string& id) const
|
||||||
{
|
{
|
||||||
for (ExtCells::const_iterator iter = extCells.begin(); iter!=extCells.end(); ++iter)
|
for (ExtCells::const_iterator iter = extCells.begin(); iter!=extCells.end(); ++iter)
|
||||||
{
|
{
|
||||||
|
@ -323,7 +323,7 @@ namespace ESMS
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
const Cell *searchExtByRegion (const std::string& id) const
|
const ESM::Cell *searchExtByRegion (const std::string& id) const
|
||||||
{
|
{
|
||||||
std::string id2 = toLower (id);
|
std::string id2 = toLower (id);
|
||||||
|
|
||||||
|
@ -345,13 +345,13 @@ namespace ESMS
|
||||||
count++;
|
count++;
|
||||||
|
|
||||||
// All cells have a name record, even nameless exterior cells.
|
// All cells have a name record, even nameless exterior cells.
|
||||||
Cell *cell = new Cell;
|
ESM::Cell *cell = new ESM::Cell;
|
||||||
cell->name = id;
|
cell->name = id;
|
||||||
|
|
||||||
// The cell itself takes care of all the hairy details
|
// The cell itself takes care of all the hairy details
|
||||||
cell->load(esm);
|
cell->load(esm);
|
||||||
|
|
||||||
if(cell->data.flags & Cell::Interior)
|
if(cell->data.flags & ESM::Cell::Interior)
|
||||||
{
|
{
|
||||||
// Store interior cell by name
|
// Store interior cell by name
|
||||||
intCells[id] = cell;
|
intCells[id] = cell;
|
||||||
|
|
|
@ -8,7 +8,7 @@ bool isFile(const char *name)
|
||||||
return boost::filesystem::exists(cfg_file_path);
|
return boost::filesystem::exists(cfg_file_path);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef __MACOSX__
|
#ifdef OGRE_PLATFORM == OGRE_PLATFORM_APPLE
|
||||||
#include <CoreFoundation/CoreFoundation.h>
|
#include <CoreFoundation/CoreFoundation.h>
|
||||||
|
|
||||||
std::string macBundlePath()
|
std::string macBundlePath()
|
||||||
|
|
12
files/plugins.cfg.mac
Normal file
12
files/plugins.cfg.mac
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
# Defines plugins to load
|
||||||
|
|
||||||
|
# Define plugin folder
|
||||||
|
PluginFolder=${OGRE_PLUGIN_DIR}
|
||||||
|
|
||||||
|
# Define plugins
|
||||||
|
Plugin=RenderSystem_GL
|
||||||
|
Plugin=Plugin_ParticleFX
|
||||||
|
Plugin=Plugin_OctreeSceneManager
|
||||||
|
# Plugin=Plugin_CgProgramManager
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue