fix plugin dir on osx
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2443 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
491e24792a
commit
0b8f7439cb
|
@ -33,6 +33,9 @@ libs = [
|
||||||
'm',
|
'm',
|
||||||
]
|
]
|
||||||
|
|
||||||
env_wiiuse.SharedLibrary(env['libs_dir']+"wiiuse", files, LIBS=libs)
|
if sys.platform == 'darwin':
|
||||||
|
env_wiiuse.StaticLibrary(env['libs_dir']+"wiiuse", files, LIBS=libs)
|
||||||
|
else:
|
||||||
|
env_wiiuse.SharedLibrary(env['libs_dir']+"wiiuse", files, LIBS=libs)
|
||||||
|
|
||||||
env['HAVE_WIIUSE'] = 1
|
env['HAVE_WIIUSE'] = 1
|
||||||
|
|
|
@ -32,6 +32,15 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(__APPLE__)
|
||||||
|
|
||||||
|
#include <CoreFoundation/CFString.h>
|
||||||
|
#include <CoreFoundation/CFUrl.h>
|
||||||
|
#include <CoreFoundation/CFBundle.h>
|
||||||
|
#include <sys/param.h>
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
|
||||||
|
@ -287,6 +296,54 @@ std::string GetUserDirectory()
|
||||||
return std::string(path);
|
return std::string(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//osx specific functions
|
||||||
|
#if defined(__APPLE__)
|
||||||
|
|
||||||
|
std::string GetBundleDirectory()
|
||||||
|
{
|
||||||
|
|
||||||
|
// Plugin path will be Dolphin.app/Contents/PlugIns
|
||||||
|
CFURLRef BundleRef;
|
||||||
|
char AppBundlePath[MAXPATHLEN];
|
||||||
|
|
||||||
|
// Get the main bundle for the app
|
||||||
|
BundleRef = CFBundleCopyBundleURL(CFBundleGetMainBundle());
|
||||||
|
|
||||||
|
CFStringRef BundlePath = CFURLCopyFileSystemPath(BundleRef, kCFURLPOSIXPathStyle);
|
||||||
|
CFStringGetFileSystemRepresentation(BundlePath, AppBundlePath, sizeof(AppBundlePath));
|
||||||
|
|
||||||
|
CFRelease(BundleRef);
|
||||||
|
CFRelease(BundlePath);
|
||||||
|
|
||||||
|
return AppBundlePath;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
std::string GetPluginsDirectory()
|
||||||
|
{
|
||||||
|
|
||||||
|
CFURLRef PluginDirRef;
|
||||||
|
char PluginPath[MAXPATHLEN];
|
||||||
|
|
||||||
|
PluginDirRef = CFBundleCopyBuiltInPlugInsURL(CFBundleGetMainBundle());
|
||||||
|
|
||||||
|
CFStringRef PluginDirPath = CFURLCopyFileSystemPath(PluginDirRef, kCFURLPOSIXPathStyle);
|
||||||
|
CFStringGetFileSystemRepresentation(PluginDirPath, PluginPath, sizeof(PluginPath));
|
||||||
|
|
||||||
|
CFRelease(PluginDirRef);
|
||||||
|
CFRelease(PluginDirPath);
|
||||||
|
|
||||||
|
std::string PluginsDir = GetBundleDirectory();
|
||||||
|
PluginsDir += DIR_SEP;
|
||||||
|
PluginsDir += PluginPath;
|
||||||
|
|
||||||
|
return PluginsDir;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
u64 GetSize(const char *filename)
|
u64 GetSize(const char *filename)
|
||||||
{
|
{
|
||||||
if (!Exists(filename))
|
if (!Exists(filename))
|
||||||
|
|
|
@ -55,6 +55,10 @@ bool DeleteDirRecursively(const std::string& _Directory);
|
||||||
void GetCurrentDirectory(std::string& _rDirectory);
|
void GetCurrentDirectory(std::string& _rDirectory);
|
||||||
bool SetCurrentDirectory(const std::string& _rDirectory);
|
bool SetCurrentDirectory(const std::string& _rDirectory);
|
||||||
|
|
||||||
|
#if defined(__APPLE__)
|
||||||
|
std::string GetPluginsDirectory();
|
||||||
|
#endif
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -20,14 +20,10 @@
|
||||||
#include "Common.h"
|
#include "Common.h"
|
||||||
#include "IniFile.h"
|
#include "IniFile.h"
|
||||||
#include "ConfigManager.h"
|
#include "ConfigManager.h"
|
||||||
#ifdef __APPLE__
|
|
||||||
#include <CoreFoundation/CFString.h>
|
|
||||||
#include <CoreFoundation/CFUrl.h>
|
|
||||||
#include <CoreFoundation/CFBundle.h>
|
|
||||||
#include <sys/param.h>
|
|
||||||
|
|
||||||
|
#if defined(__APPLE__)
|
||||||
|
#include "FileUtil.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
SConfig SConfig::m_Instance;
|
SConfig SConfig::m_Instance;
|
||||||
|
|
||||||
|
|
||||||
|
@ -123,26 +119,8 @@ void SConfig::LoadSettings()
|
||||||
{
|
{
|
||||||
IniFile ini;
|
IniFile ini;
|
||||||
ini.Load(CONFIG_FILE);
|
ini.Load(CONFIG_FILE);
|
||||||
#ifdef __APPLE__
|
#if defined(__APPLE__)
|
||||||
// Plugin path will be Dolphin.app/Contents/PlugIns
|
std::string PluginsDir = File::GetPluginsDirectory();
|
||||||
CFURLRef BundleRef, PluginDirRef;
|
|
||||||
// Get the main bundle for the app
|
|
||||||
BundleRef = CFBundleCopyBundleURL(CFBundleGetMainBundle());
|
|
||||||
PluginDirRef = CFBundleCopyBuiltInPlugInsURL(CFBundleGetMainBundle());
|
|
||||||
CFStringRef BundlePath = CFURLCopyFileSystemPath(BundleRef, kCFURLPOSIXPathStyle);
|
|
||||||
CFStringRef PluginDirPath = CFURLCopyFileSystemPath(PluginDirRef, kCFURLPOSIXPathStyle);
|
|
||||||
char AppBundlePath[MAXPATHLEN], PluginPath[MAXPATHLEN];
|
|
||||||
CFStringGetFileSystemRepresentation(BundlePath, AppBundlePath, sizeof(AppBundlePath));
|
|
||||||
CFStringGetFileSystemRepresentation(PluginDirPath, PluginPath, sizeof(PluginPath));
|
|
||||||
// printf("bundle path = %s %s\n", AppBundlePath, PluginPath);
|
|
||||||
CFRelease(BundleRef);
|
|
||||||
CFRelease(BundlePath);
|
|
||||||
CFRelease(PluginDirRef);
|
|
||||||
CFRelease(PluginDirPath);
|
|
||||||
std::string PluginsDir = AppBundlePath;
|
|
||||||
PluginsDir += DIR_SEP;
|
|
||||||
PluginsDir += PluginPath;
|
|
||||||
PluginsDir += DIR_SEP;
|
|
||||||
|
|
||||||
m_DefaultGFXPlugin = PluginsDir + DEFAULT_GFX_PLUGIN;
|
m_DefaultGFXPlugin = PluginsDir + DEFAULT_GFX_PLUGIN;
|
||||||
m_DefaultDSPPlugin = PluginsDir + DEFAULT_DSP_PLUGIN;
|
m_DefaultDSPPlugin = PluginsDir + DEFAULT_DSP_PLUGIN;
|
||||||
|
|
|
@ -365,7 +365,12 @@ void CPluginManager::ScanForPlugins()
|
||||||
m_PluginInfos.clear();
|
m_PluginInfos.clear();
|
||||||
// Get plugins dir
|
// Get plugins dir
|
||||||
CFileSearch::XStringVector Directories;
|
CFileSearch::XStringVector Directories;
|
||||||
Directories.push_back(std::string(PLUGINS_DIR));
|
|
||||||
|
#if defined(__APPLE__)
|
||||||
|
Directories.push_back(File::GetPluginsDirectory());
|
||||||
|
#else
|
||||||
|
Directories.push_back(std::string(PLUGINS_DIR));
|
||||||
|
#endif
|
||||||
|
|
||||||
CFileSearch::XStringVector Extensions;
|
CFileSearch::XStringVector Extensions;
|
||||||
Extensions.push_back("*" PLUGIN_SUFFIX);
|
Extensions.push_back("*" PLUGIN_SUFFIX);
|
||||||
|
|
Loading…
Reference in New Issue