diff --git a/CMakeLists.txt b/CMakeLists.txt index 8e0c0c463a..58c4ebae0b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,9 +17,8 @@ if(DPKG_PROGRAM) set(MORROWIND_RESOURCE_FILES "/usr/share/games/openmw/resources/" CACHE PATH "location of OpenMW resources files") else() if (APPLE) - # set path inside bundle - set(MORROWIND_DATA_FILES "../data" CACHE PATH "location of Morrowind data files") - set(MORROWIND_RESOURCE_FILES "Contents/Resources/resources" CACHE PATH "location of OpenMW resources files") + set(MORROWIND_DATA_FILES "./data" CACHE PATH "location of Morrowind data files") + set(MORROWIND_RESOURCE_FILES "./resources" CACHE PATH "location of OpenMW resources files") else() set(MORROWIND_DATA_FILES "data" CACHE PATH "location of Morrowind data files") set(MORROWIND_RESOURCE_FILES "resources" CACHE PATH "location of OpenMW resources files") @@ -366,7 +365,7 @@ endif() if (APPLE) configure_file(${OpenMW_SOURCE_DIR}/files/plugins.cfg.mac - "${APP_BUNDLE_DIR}/Contents/MacOS/plugins.cfg") + "${OpenMW_BINARY_DIR}/plugins.cfg") configure_file(${OpenMW_SOURCE_DIR}/files/mac/Info.plist "${APP_BUNDLE_DIR}/Contents/Info.plist" COPYONLY) @@ -385,9 +384,6 @@ if (APPLE) configure_file(${OGRE_PLUGIN_DIR}/Plugin_ParticleFX.dylib "${APP_BUNDLE_DIR}/Contents/Plugins/Plugin_ParticleFX.dylib" COPYONLY) - configure_file(${OpenMW_SOURCE_DIR}/files/openmw.cfg - "${APP_BUNDLE_DIR}/Contents/MacOS/openmw.cfg") - endif (APPLE) @@ -398,6 +394,7 @@ if (CMAKE_COMPILER_IS_GNUCC) endif (CMAKE_COMPILER_IS_GNUCC) # Apple bundling +# TODO REWRITE! if (APPLE) set(MISC_FILES ${APP_BUNDLE_DIR}/Contents/MacOS/openmw.cfg diff --git a/apps/openmw/main.cpp b/apps/openmw/main.cpp index 81fbff2f2d..4df5111735 100644 --- a/apps/openmw/main.cpp +++ b/apps/openmw/main.cpp @@ -182,7 +182,7 @@ int main(int argc, char**argv) { #if OGRE_PLATFORM == OGRE_PLATFORM_APPLE // set current dir to bundle path - boost::filesystem::path bundlePath = boost::filesystem::path(Ogre::macBundlePath()); + boost::filesystem::path bundlePath = boost::filesystem::path(Ogre::macBundlePath()).parent_path(); boost::filesystem::current_path(bundlePath); #endif diff --git a/components/files/path.cpp b/components/files/path.cpp index a7b66822fd..4191c6014b 100644 --- a/components/files/path.cpp +++ b/components/files/path.cpp @@ -9,7 +9,7 @@ #include #endif -#if OGRE_PLATFORM == OGRE_PLATFORM_LINUX +#if OGRE_PLATFORM == OGRE_PLATFORM_LINUX || OGRE_PLATFORM == OGRE_PLATFORM_APPLE #include //getenv #endif @@ -19,7 +19,9 @@ std::string Files::getPath (PathTypeEnum parType, const std::string parApp, cons if (parType==Path_ConfigGlobal) { #if OGRE_PLATFORM == OGRE_PLATFORM_APPLE - theBasePath = Ogre::macBundlePath() + "/Contents/MacOS/"; //FIXME do we have global/local with OSX? + boost::filesystem::path path(Ogre::macBundlePath()); + path = path.parent_path(); + theBasePath = path.string() + "/"; #elif OGRE_PLATFORM == OGRE_PLATFORM_LINUX theBasePath = "/etc/"+parApp+"/"; #else @@ -29,9 +31,7 @@ std::string Files::getPath (PathTypeEnum parType, const std::string parApp, cons } else if (parType==Path_ConfigUser) { -#if OGRE_PLATFORM == OGRE_PLATFORM_APPLE - theBasePath = Ogre::macBundlePath() + "/Contents/MacOS/"; //FIXME do we have global/local with OSX? -#elif OGRE_PLATFORM == OGRE_PLATFORM_LINUX +#if OGRE_PLATFORM == OGRE_PLATFORM_LINUX || OGRE_PLATFORM == OGRE_PLATFORM_APPLE const char* theDir; if ((theDir = getenv("OPENMW_HOME")) != NULL) { @@ -57,5 +57,6 @@ std::string Files::getPath (PathTypeEnum parType, const std::string parApp, cons } theBasePath.append(parFile); + std::cout << "theBasePath is " << theBasePath << std::endl; return theBasePath; }