forked from mia/Aegisub
Put config files in the right place on OS X
This commit is contained in:
parent
eeb574b1f9
commit
cbff449f8f
3 changed files with 17 additions and 9 deletions
|
@ -93,6 +93,8 @@ std::string OSX_GetBundleExecutablePath();
|
||||||
/// Pass the basename of the executable to get the path.
|
/// Pass the basename of the executable to get the path.
|
||||||
std::string OSX_GetBundleAuxillaryExecutablePath(std::string const& executableName);
|
std::string OSX_GetBundleAuxillaryExecutablePath(std::string const& executableName);
|
||||||
|
|
||||||
|
std::string OSX_GetApplicationSupportDirectory();
|
||||||
|
|
||||||
/// @brief Open a URI using the Launcher.
|
/// @brief Open a URI using the Launcher.
|
||||||
/// @param location URI of file
|
/// @param location URI of file
|
||||||
/// @note If this is a FILE or DIRECTORY the path must be ABSOLUTE no 'file://'
|
/// @note If this is a FILE or DIRECTORY the path must be ABSOLUTE no 'file://'
|
||||||
|
|
|
@ -95,6 +95,12 @@ std::string OSX_GetBundleAuxillaryExecutablePath(std::string const& executableNa
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string OSX_GetApplicationSupportDirectory() {
|
||||||
|
@autoreleasepool {
|
||||||
|
return EmptyIfNil([NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES) firstObject]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void OSX_OpenLocation(std::string const& location) {
|
void OSX_OpenLocation(std::string const& location) {
|
||||||
@autoreleasepool {
|
@autoreleasepool {
|
||||||
NSURL *url = [NSURL fileURLWithPath:[NSString stringWithUTF8String:location.c_str()]];
|
NSURL *url = [NSURL fileURLWithPath:[NSString stringWithUTF8String:location.c_str()]];
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
#include <pwd.h>
|
#include <pwd.h>
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
#ifndef __APPLE__
|
||||||
std::string home_dir() {
|
std::string home_dir() {
|
||||||
const char *env = getenv("HOME");
|
const char *env = getenv("HOME");
|
||||||
if (env) return env;
|
if (env) return env;
|
||||||
|
@ -33,24 +34,23 @@ std::string home_dir() {
|
||||||
|
|
||||||
throw agi::EnvironmentError("Could not get home directory. Make sure HOME is set.");
|
throw agi::EnvironmentError("Could not get home directory. Make sure HOME is set.");
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string data_dir() {
|
|
||||||
#ifndef __APPLE__
|
|
||||||
return P_DATA;
|
|
||||||
#else
|
|
||||||
return agi::util::OSX_GetBundleSharedSupportDirectory();
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
namespace agi {
|
namespace agi {
|
||||||
|
|
||||||
void Path::FillPlatformSpecificPaths() {
|
void Path::FillPlatformSpecificPaths() {
|
||||||
|
#ifndef __APPLE__
|
||||||
agi::fs::path home = home_dir();
|
agi::fs::path home = home_dir();
|
||||||
SetToken("?user", home/".aegisub");
|
SetToken("?user", home/".aegisub");
|
||||||
SetToken("?local", home/".aegisub");
|
SetToken("?local", home/".aegisub");
|
||||||
SetToken("?data", data_dir());
|
SetToken("?data", P_DATA);
|
||||||
|
#else
|
||||||
|
agi::fs::path app_support = agi::util::OSX_GetApplicationSupportDirectory();
|
||||||
|
SetToken("?user", app_support/"Aegisub");
|
||||||
|
SetToken("?local", app_support/"Aegisub");
|
||||||
|
SetToken("?data", agi::util::OSX_GetBundleSharedSupportDirectory());
|
||||||
|
#endif
|
||||||
SetToken("?temp", boost::filesystem::temp_directory_path());
|
SetToken("?temp", boost::filesystem::temp_directory_path());
|
||||||
SetToken("?dictionary", "/usr/share/hunspell");
|
SetToken("?dictionary", "/usr/share/hunspell");
|
||||||
SetToken("?docs", P_DOC);
|
SetToken("?docs", P_DOC);
|
||||||
|
|
Loading…
Reference in a new issue