/*static*/ OsPath Paths::RootData(const OsPath& argv0) { #ifdef INSTALLED_DATADIR UNUSED2(argv0); return OsPath(STRINGIZE(INSTALLED_DATADIR))/""; #else # if OS_MACOSX if (osx_IsAppBundleValid()) { debug_printf(L"Valid app bundle detected\n"); std::string resourcesPath = osx_GetBundleResourcesPath(); // Ensure we have a valid resources path ENSURE(!resourcesPath.empty()); return OsPath(resourcesPath)/"data"/""; } # endif // OS_MACOSX return Root(argv0)/"data"/""; #endif // INSTALLED_DATADIR }
OsPath sys_ExecutablePathname() { OsPath path; // On OS X we might be a bundle, return the bundle path as the executable name, // i.e. /path/to/0ad.app instead of /path/to/0ad.app/Contents/MacOS/pyrogenesis if (osx_IsAppBundleValid()) { path = osx_GetBundlePath(); ENSURE(!path.empty()); } else { char temp[PATH_MAX]; u32 size = PATH_MAX; if (_NSGetExecutablePath(temp, &size) == 0) { char name[PATH_MAX]; realpath(temp, name); path = OsPath(name); } } return path; }