Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --- /src/lincity-ng/main.cpp 2013-12-22 12:57:28.000000000 -0800
- +++ /src/lincity-ng/main.cpp 2014-04-30 11:59:44.000000000 -0700
- @@ -58,6 +58,10 @@
- tinygettext::DictionaryManager* dictionaryManager = 0;
- bool restart = false;
- +#ifdef __APPLE__
- + extern char *getBundleSharePath(char *packageName);
- +#endif
- +
- void initPhysfs(const char* argv0)
- {
- if(!PHYSFS_init(argv0)) {
- @@ -146,28 +150,54 @@
- }
- }
- -#if defined(APPDATADIR) || defined(ENABLE_BINRELOC)
- - std::string datadir;
- -#ifdef ENABLE_BINRELOC
- - BrInitError error;
- - if (br_init (&error) == 0 && error != BR_INIT_ERROR_DISABLED) {
- - printf ("Warning: BinReloc failed to initialize (error code %d)\n",
- - error);
- - printf ("Will fallback to hardcoded default path.\n");
- - }
- -
- - char* brdatadir = br_find_data_dir("/usr/local/share");
- - datadir = brdatadir;
- - datadir += "/" PACKAGE_NAME;
- - free(brdatadir);
- +#ifndef __APPLE__
- + #if defined(APPDATADIR) || defined(ENABLE_BINRELOC)
- + std::string datadir;
- + #ifdef ENABLE_BINRELOC
- + BrInitError error;
- + if (br_init (&error) == 0 && error != BR_INIT_ERROR_DISABLED) {
- + printf ("Warning: BinReloc failed to initialize (error code %d)\n",
- + error);
- + printf ("Will fallback to hardcoded default path.\n");
- + }
- +
- + char* brdatadir = br_find_data_dir("/usr/local/share");
- + datadir = brdatadir;
- + datadir += "/" PACKAGE_NAME;
- + free(brdatadir);
- + #else
- + datadir = APPDATADIR;
- + #endif
- +
- + if(!PHYSFS_addToSearchPath(datadir.c_str(), 1)) {
- + std::cout << "Couldn't add '" << datadir
- + << "' to physfs searchpath: " << PHYSFS_getLastError() << "\n";
- + }
- + #endif
- #else
- - datadir = APPDATADIR;
- -#endif
- -
- - if(!PHYSFS_addToSearchPath(datadir.c_str(), 1)) {
- - std::cout << "Couldn't add '" << datadir
- - << "' to physfs searchpath: " << PHYSFS_getLastError() << "\n";
- - }
- + #if defined(APPDATADIR) || defined(ENABLE_BINRELOC) && __APPLE__
- + std::string datadir;
- + #ifdef ENABLE_BINRELOC
- + BrInitError error;
- + if (br_init (&error) == 0 && error != BR_INIT_ERROR_DISABLED) {
- + printf ("Warning: BinReloc failed to initialize (error code %d)\n",
- + error);
- + printf ("Will fallback to hardcoded default path.\n");
- + }
- +
- + char* brdatadir = br_find_data_dir("/usr/local/share");
- + datadir = brdatadir;
- + datadir += "/" PACKAGE_NAME;
- + free(brdatadir);
- + #else
- + datadir = APPDATADIR;
- + #endif
- + datadir = getBundleSharePath(PACKAGE_NAME);
- + if(!PHYSFS_addToSearchPath(datadir.c_str(), 1)) {
- + std::cout << "Couldn't add '" << datadir
- + << "' to physfs searchpath: " << PHYSFS_getLastError() << "\n";
- + }
- + #endif
- #endif
- // allow symbolic links
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement