More changes for Steam on Mac (#15036)
* Additional Steam build cleanups * Fix Mac directories for Steam
This commit is contained in:
parent
0422dfb5b5
commit
bf5739b735
|
@ -29,6 +29,10 @@
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef OSX
|
||||||
|
#include <CoreFoundation/CoreFoundation.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef __QNX__
|
#ifdef __QNX__
|
||||||
#include <libgen.h>
|
#include <libgen.h>
|
||||||
#endif
|
#endif
|
||||||
|
@ -98,6 +102,21 @@ bool fill_pathname_application_data(char *s, size_t len)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#elif defined(OSX)
|
#elif defined(OSX)
|
||||||
|
#if HAVE_STEAM
|
||||||
|
CFStringRef parent_path;
|
||||||
|
CFURLRef bundle_url, parent_url;
|
||||||
|
CFBundleRef bundle = CFBundleGetMainBundle();
|
||||||
|
if (!bundle)
|
||||||
|
return false;
|
||||||
|
bundle_url = CFBundleCopyBundleURL(bundle);
|
||||||
|
parent_url = CFURLCreateCopyDeletingLastPathComponent(NULL, bundle_url);
|
||||||
|
parent_path = CFURLCopyFileSystemPath(parent_url, kCFURLPOSIXPathStyle);
|
||||||
|
CFStringGetCString(parent_path, s, len, kCFStringEncodingUTF8);
|
||||||
|
CFRelease(parent_path);
|
||||||
|
CFRelease(parent_url);
|
||||||
|
CFRelease(bundle_url);
|
||||||
|
return true;
|
||||||
|
#else
|
||||||
const char *appdata = getenv("HOME");
|
const char *appdata = getenv("HOME");
|
||||||
|
|
||||||
if (appdata)
|
if (appdata)
|
||||||
|
@ -106,6 +125,7 @@ bool fill_pathname_application_data(char *s, size_t len)
|
||||||
"Library/Application Support/RetroArch", len);
|
"Library/Application Support/RetroArch", len);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
#elif defined(RARCH_UNIX_CWD_ENV)
|
#elif defined(RARCH_UNIX_CWD_ENV)
|
||||||
getcwd(s, len);
|
getcwd(s, len);
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -333,17 +333,10 @@ static void frontend_darwin_get_env(int *argc, char *argv[],
|
||||||
CFStringRef bundle_path;
|
CFStringRef bundle_path;
|
||||||
CFURLRef resource_url;
|
CFURLRef resource_url;
|
||||||
CFStringRef resource_path;
|
CFStringRef resource_path;
|
||||||
#if TARGET_OS_IPHONE
|
|
||||||
char resolved_home_dir_buf[
|
|
||||||
PATH_MAX_LENGTH] = {0};
|
|
||||||
char resolved_bundle_dir_buf[
|
|
||||||
PATH_MAX_LENGTH] = {0};
|
|
||||||
#endif
|
|
||||||
char temp_dir[PATH_MAX_LENGTH] = {0};
|
char temp_dir[PATH_MAX_LENGTH] = {0};
|
||||||
char bundle_path_buf[PATH_MAX_LENGTH] = {0};
|
char bundle_path_buf[PATH_MAX_LENGTH] = {0};
|
||||||
char resource_path_buf[PATH_MAX_LENGTH] = {0};
|
char documents_dir_buf[PATH_MAX_LENGTH] = {0};
|
||||||
char full_resource_path_buf[PATH_MAX_LENGTH];
|
char application_data[PATH_MAX_LENGTH] = {0};
|
||||||
char home_dir_buf[PATH_MAX_LENGTH] = {0};
|
|
||||||
CFBundleRef bundle = CFBundleGetMainBundle();
|
CFBundleRef bundle = CFBundleGetMainBundle();
|
||||||
|
|
||||||
if (!bundle)
|
if (!bundle)
|
||||||
|
@ -351,94 +344,70 @@ static void frontend_darwin_get_env(int *argc, char *argv[],
|
||||||
|
|
||||||
bundle_url = CFBundleCopyBundleURL(bundle);
|
bundle_url = CFBundleCopyBundleURL(bundle);
|
||||||
bundle_path = CFURLCopyPath(bundle_url);
|
bundle_path = CFURLCopyPath(bundle_url);
|
||||||
|
CFStringGetCString(bundle_path, bundle_path_buf, sizeof(bundle_path_buf), kCFStringEncodingUTF8);
|
||||||
|
CFRelease(bundle_path);
|
||||||
|
CFRelease(bundle_url);
|
||||||
|
|
||||||
resource_url = CFBundleCopyResourcesDirectoryURL(bundle);
|
#if HAVE_STEAM
|
||||||
resource_path = CFURLCopyPath(resource_url);
|
// for steam we're going to put everything next to the .app
|
||||||
|
fill_pathname_application_data(documents_dir_buf, sizeof(documents_dir_buf));
|
||||||
CFRelease(resource_url);
|
#else
|
||||||
|
CFSearchPathForDirectoriesInDomains(documents_dir_buf, sizeof(documents_dir_buf));
|
||||||
CFStringGetCString(bundle_path,
|
|
||||||
bundle_path_buf, sizeof(bundle_path_buf), kCFStringEncodingUTF8);
|
|
||||||
CFStringGetCString(resource_path,
|
|
||||||
resource_path_buf, sizeof(resource_path_buf), kCFStringEncodingUTF8);
|
|
||||||
CFRelease(resource_path);
|
|
||||||
fill_pathname_join_special(full_resource_path_buf, bundle_path_buf, resource_path_buf, sizeof(full_resource_path_buf));
|
|
||||||
CFSearchPathForDirectoriesInDomains(
|
|
||||||
home_dir_buf, sizeof(home_dir_buf));
|
|
||||||
|
|
||||||
#if TARGET_OS_IPHONE
|
#if TARGET_OS_IPHONE
|
||||||
if (realpath(home_dir_buf, resolved_home_dir_buf))
|
char resolved_documents_dir_buf[PATH_MAX_LENGTH] = {0};
|
||||||
strlcpy(home_dir_buf,
|
char resolved_bundle_dir_buf[PATH_MAX_LENGTH] = {0};
|
||||||
resolved_home_dir_buf,
|
if (realpath(documents_dir_buf, resolved_documents_dir_buf))
|
||||||
sizeof(home_dir_buf));
|
strlcpy(documents_dir_buf,
|
||||||
|
resolved_documents_dir_buf,
|
||||||
|
sizeof(documents_dir_buf));
|
||||||
if (realpath(bundle_path_buf, resolved_bundle_dir_buf))
|
if (realpath(bundle_path_buf, resolved_bundle_dir_buf))
|
||||||
strlcpy(bundle_path_buf,
|
strlcpy(bundle_path_buf,
|
||||||
resolved_bundle_dir_buf,
|
resolved_bundle_dir_buf,
|
||||||
sizeof(bundle_path_buf));
|
sizeof(bundle_path_buf));
|
||||||
#endif
|
#endif
|
||||||
|
strlcat(documents_dir_buf, "/RetroArch", sizeof(documents_dir_buf));
|
||||||
|
#endif
|
||||||
|
|
||||||
strlcat(home_dir_buf, "/RetroArch", sizeof(home_dir_buf));
|
|
||||||
#ifdef HAVE_METAL
|
|
||||||
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_SHADER],
|
|
||||||
home_dir_buf, "shaders_slang",
|
|
||||||
sizeof(g_defaults.dirs[DEFAULT_DIR_SHADER]));
|
|
||||||
#else
|
|
||||||
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_SHADER],
|
|
||||||
home_dir_buf, "shaders_glsl",
|
|
||||||
sizeof(g_defaults.dirs[DEFAULT_DIR_SHADER]));
|
|
||||||
#endif
|
|
||||||
#ifdef HAVE_UPDATE_CORES
|
|
||||||
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE],
|
|
||||||
home_dir_buf, "cores", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE]));
|
|
||||||
#else
|
|
||||||
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE],
|
|
||||||
bundle_path_buf, "modules", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE]));
|
|
||||||
#endif
|
|
||||||
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE_INFO], home_dir_buf, "info", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE_INFO]));
|
|
||||||
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_OVERLAY], home_dir_buf, "overlays", sizeof(g_defaults.dirs[DEFAULT_DIR_OVERLAY]));
|
|
||||||
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_AUTOCONFIG], home_dir_buf, "autoconfig", sizeof(g_defaults.dirs[DEFAULT_DIR_AUTOCONFIG]));
|
|
||||||
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE_ASSETS], home_dir_buf, "downloads", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE_ASSETS]));
|
|
||||||
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_ASSETS], home_dir_buf, "assets", sizeof(g_defaults.dirs[DEFAULT_DIR_ASSETS]));
|
|
||||||
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_SYSTEM], home_dir_buf, "system", sizeof(g_defaults.dirs[DEFAULT_DIR_SYSTEM]));
|
|
||||||
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_MENU_CONFIG], home_dir_buf, "config", sizeof(g_defaults.dirs[DEFAULT_DIR_MENU_CONFIG]));
|
|
||||||
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_REMAP], g_defaults.dirs[DEFAULT_DIR_MENU_CONFIG], "remaps", sizeof(g_defaults.dirs[DEFAULT_DIR_REMAP]));
|
|
||||||
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_DATABASE], home_dir_buf, "database/rdb", sizeof(g_defaults.dirs[DEFAULT_DIR_DATABASE]));
|
|
||||||
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CHEATS], home_dir_buf, "cht", sizeof(g_defaults.dirs[DEFAULT_DIR_CHEATS]));
|
|
||||||
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_THUMBNAILS], home_dir_buf, "thumbnails", sizeof(g_defaults.dirs[DEFAULT_DIR_THUMBNAILS]));
|
|
||||||
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_SRAM], home_dir_buf, "saves", sizeof(g_defaults.dirs[DEFAULT_DIR_SRAM]));
|
|
||||||
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_SAVESTATE], home_dir_buf, "states", sizeof(g_defaults.dirs[DEFAULT_DIR_SAVESTATE]));
|
|
||||||
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_RECORD_CONFIG], home_dir_buf, "records_config", sizeof(g_defaults.dirs[DEFAULT_DIR_RECORD_CONFIG]));
|
|
||||||
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_RECORD_OUTPUT], home_dir_buf, "records", sizeof(g_defaults.dirs[DEFAULT_DIR_RECORD_OUTPUT]));
|
|
||||||
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_LOGS], home_dir_buf, "logs", sizeof(g_defaults.dirs[DEFAULT_DIR_LOGS]));
|
|
||||||
#if defined(IOS)
|
|
||||||
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_PLAYLIST], home_dir_buf, "playlists", sizeof(g_defaults.dirs[DEFAULT_DIR_PLAYLIST]));
|
|
||||||
#endif
|
|
||||||
#if defined(OSX)
|
#if defined(OSX)
|
||||||
char application_data[PATH_MAX_LENGTH];
|
|
||||||
|
|
||||||
fill_pathname_application_data(application_data, sizeof(application_data));
|
fill_pathname_application_data(application_data, sizeof(application_data));
|
||||||
|
#else
|
||||||
#ifdef HAVE_CG
|
// ios and tvos are going to put everything in the documents dir
|
||||||
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_SHADER], home_dir_buf, "shaders_cg", sizeof(g_defaults.dirs[DEFAULT_DIR_SHADER]));
|
strncpy(application_data, documents_dir_buf, sizeof(application_data));
|
||||||
#endif
|
#endif
|
||||||
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_PLAYLIST], application_data, "playlists", sizeof(g_defaults.dirs[DEFAULT_DIR_PLAYLIST]));
|
|
||||||
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_THUMBNAILS], application_data, "thumbnails", sizeof(g_defaults.dirs[DEFAULT_DIR_THUMBNAILS]));
|
// By the time we are here:
|
||||||
|
// bundle_path_buf is the full path of the .app
|
||||||
|
// documents_dir_buf is where user documents go (macos: ~/Documents/RetroArch)
|
||||||
|
// application_data is where "hidden" app data goes (macos: ~/Library/Application Support/RetroArch, ios: documents dir)
|
||||||
|
|
||||||
|
// this stuff we expect the user to find easily, possibly sync across iCloud
|
||||||
|
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_LOGS], documents_dir_buf, "logs", sizeof(g_defaults.dirs[DEFAULT_DIR_LOGS]));
|
||||||
|
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_PLAYLIST], documents_dir_buf, "playlists", sizeof(g_defaults.dirs[DEFAULT_DIR_PLAYLIST]));
|
||||||
|
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_RECORD_OUTPUT], documents_dir_buf, "records", sizeof(g_defaults.dirs[DEFAULT_DIR_RECORD_OUTPUT]));
|
||||||
|
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_RECORD_CONFIG], documents_dir_buf, "records_config", sizeof(g_defaults.dirs[DEFAULT_DIR_RECORD_CONFIG]));
|
||||||
|
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_SRAM], documents_dir_buf, "saves", sizeof(g_defaults.dirs[DEFAULT_DIR_SRAM]));
|
||||||
|
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_SCREENSHOT], documents_dir_buf, "screenshots", sizeof(g_defaults.dirs[DEFAULT_DIR_SCREENSHOT]));
|
||||||
|
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_SAVESTATE], documents_dir_buf, "states", sizeof(g_defaults.dirs[DEFAULT_DIR_SAVESTATE]));
|
||||||
|
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_SYSTEM], documents_dir_buf, "system", sizeof(g_defaults.dirs[DEFAULT_DIR_SYSTEM]));
|
||||||
|
|
||||||
|
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_ASSETS], application_data, "assets", sizeof(g_defaults.dirs[DEFAULT_DIR_ASSETS]));
|
||||||
|
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_AUTOCONFIG], application_data, "autoconfig", sizeof(g_defaults.dirs[DEFAULT_DIR_AUTOCONFIG]));
|
||||||
|
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CHEATS], application_data, "cht", sizeof(g_defaults.dirs[DEFAULT_DIR_CHEATS]));
|
||||||
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_MENU_CONFIG], application_data, "config", sizeof(g_defaults.dirs[DEFAULT_DIR_MENU_CONFIG]));
|
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_MENU_CONFIG], application_data, "config", sizeof(g_defaults.dirs[DEFAULT_DIR_MENU_CONFIG]));
|
||||||
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_REMAP], g_defaults.dirs[DEFAULT_DIR_MENU_CONFIG], "remaps", sizeof(g_defaults.dirs[DEFAULT_DIR_REMAP]));
|
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_REMAP], g_defaults.dirs[DEFAULT_DIR_MENU_CONFIG], "remaps", sizeof(g_defaults.dirs[DEFAULT_DIR_REMAP]));
|
||||||
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE_ASSETS], application_data, "downloads", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE_ASSETS]));
|
#ifdef HAVE_UPDATE_CORES
|
||||||
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_SCREENSHOT], application_data, "screenshots", sizeof(g_defaults.dirs[DEFAULT_DIR_SCREENSHOT]));
|
|
||||||
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_SHADER], application_data, "shaders", sizeof(g_defaults.dirs[DEFAULT_DIR_SHADER]));
|
|
||||||
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE], application_data, "cores", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE]));
|
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE], application_data, "cores", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE]));
|
||||||
|
#else
|
||||||
|
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE], bundle_path_buf, "modules", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE]));
|
||||||
|
#endif
|
||||||
|
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_DATABASE], application_data, "database/rdb", sizeof(g_defaults.dirs[DEFAULT_DIR_DATABASE]));
|
||||||
|
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE_ASSETS], application_data, "downloads", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE_ASSETS]));
|
||||||
|
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_AUDIO_FILTER], application_data, "filters/audio", sizeof(g_defaults.dirs[DEFAULT_DIR_AUDIO_FILTER]));
|
||||||
|
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_VIDEO_FILTER], application_data, "filters/video", sizeof(g_defaults.dirs[DEFAULT_DIR_VIDEO_FILTER]));
|
||||||
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE_INFO], application_data, "info", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE_INFO]));
|
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE_INFO], application_data, "info", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE_INFO]));
|
||||||
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_OVERLAY], application_data, "overlays", sizeof(g_defaults.dirs[DEFAULT_DIR_OVERLAY]));
|
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_OVERLAY], application_data, "overlays", sizeof(g_defaults.dirs[DEFAULT_DIR_OVERLAY]));
|
||||||
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_AUTOCONFIG], application_data, "autoconfig", sizeof(g_defaults.dirs[DEFAULT_DIR_AUTOCONFIG]));
|
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_SHADER], application_data, "shaders", sizeof(g_defaults.dirs[DEFAULT_DIR_SHADER]));
|
||||||
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_ASSETS], application_data, "assets", sizeof(g_defaults.dirs[DEFAULT_DIR_ASSETS]));
|
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_THUMBNAILS], application_data, "thumbnails", sizeof(g_defaults.dirs[DEFAULT_DIR_THUMBNAILS]));
|
||||||
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_DATABASE], application_data, "database/rdb", sizeof(g_defaults.dirs[DEFAULT_DIR_DATABASE]));
|
|
||||||
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CHEATS], application_data, "cht", sizeof(g_defaults.dirs[DEFAULT_DIR_CHEATS]));
|
|
||||||
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_AUDIO_FILTER], application_data, "audio_filters", sizeof(g_defaults.dirs[DEFAULT_DIR_AUDIO_FILTER]));
|
|
||||||
fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_VIDEO_FILTER], application_data, "video_filters", sizeof(g_defaults.dirs[DEFAULT_DIR_VIDEO_FILTER]));
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if TARGET_OS_IOS
|
#if TARGET_OS_IOS
|
||||||
{
|
{
|
||||||
|
@ -455,6 +424,16 @@ static void frontend_darwin_get_env(int *argc, char *argv[],
|
||||||
fill_pathname_join_special(assets_zip_path,
|
fill_pathname_join_special(assets_zip_path,
|
||||||
bundle_path_buf, "assets.zip", sizeof(assets_zip_path));
|
bundle_path_buf, "assets.zip", sizeof(assets_zip_path));
|
||||||
#else
|
#else
|
||||||
|
char resource_path_buf[PATH_MAX_LENGTH] = {0};
|
||||||
|
resource_url = CFBundleCopyResourcesDirectoryURL(bundle);
|
||||||
|
resource_path = CFURLCopyPath(resource_url);
|
||||||
|
CFStringGetCString(resource_path, resource_path_buf, sizeof(resource_path_buf), kCFStringEncodingUTF8);
|
||||||
|
CFRelease(resource_path);
|
||||||
|
CFRelease(resource_url);
|
||||||
|
|
||||||
|
char full_resource_path_buf[PATH_MAX_LENGTH];
|
||||||
|
fill_pathname_join_special(full_resource_path_buf,
|
||||||
|
bundle_path_buf, resource_path_buf, sizeof(full_resource_path_buf));
|
||||||
fill_pathname_join_special(assets_zip_path,
|
fill_pathname_join_special(assets_zip_path,
|
||||||
full_resource_path_buf, "assets.zip", sizeof(assets_zip_path));
|
full_resource_path_buf, "assets.zip", sizeof(assets_zip_path));
|
||||||
#endif
|
#endif
|
||||||
|
@ -467,11 +446,7 @@ static void frontend_darwin_get_env(int *argc, char *argv[],
|
||||||
assets_zip_path);
|
assets_zip_path);
|
||||||
configuration_set_string(settings,
|
configuration_set_string(settings,
|
||||||
settings->paths.bundle_assets_dst,
|
settings->paths.bundle_assets_dst,
|
||||||
#if TARGET_OS_IOS || TARGET_OS_TV
|
|
||||||
home_dir_buf
|
|
||||||
#else
|
|
||||||
application_data
|
application_data
|
||||||
#endif
|
|
||||||
);
|
);
|
||||||
/* TODO/FIXME: Just hardcode this for now */
|
/* TODO/FIXME: Just hardcode this for now */
|
||||||
configuration_set_uint(settings, settings->uints.bundle_assets_extract_version_current, 1);
|
configuration_set_uint(settings, settings->uints.bundle_assets_extract_version_current, 1);
|
||||||
|
@ -492,9 +467,6 @@ static void frontend_darwin_get_env(int *argc, char *argv[],
|
||||||
if (access(g_defaults.dirs[DEFAULT_DIR_SYSTEM], 0755) != 0) { }
|
if (access(g_defaults.dirs[DEFAULT_DIR_SYSTEM], 0755) != 0) { }
|
||||||
}
|
}
|
||||||
|
|
||||||
CFRelease(bundle_path);
|
|
||||||
CFRelease(bundle_url);
|
|
||||||
|
|
||||||
#ifndef IS_SALAMANDER
|
#ifndef IS_SALAMANDER
|
||||||
dir_check_defaults("custom.ini");
|
dir_check_defaults("custom.ini");
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -8,8 +8,6 @@
|
||||||
<string>Developer ID Application</string>
|
<string>Developer ID Application</string>
|
||||||
<key>destination</key>
|
<key>destination</key>
|
||||||
<string>upload</string>
|
<string>upload</string>
|
||||||
<key>signingStyle</key>
|
|
||||||
<string>automatic</string>
|
|
||||||
<key>teamID</key>
|
<key>teamID</key>
|
||||||
<string>UK699V5ZS8</string>
|
<string>UK699V5ZS8</string>
|
||||||
</dict>
|
</dict>
|
||||||
|
|
|
@ -496,7 +496,6 @@
|
||||||
05F2874120F2BEEA00632D47 /* task_patch.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = task_patch.c; sourceTree = "<group>"; };
|
05F2874120F2BEEA00632D47 /* task_patch.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = task_patch.c; sourceTree = "<group>"; };
|
||||||
072976DC296284F600D6E00C /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; };
|
072976DC296284F600D6E00C /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; };
|
||||||
074695362995C03900CCB7BD /* GameController.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameController.framework; path = System/Library/Frameworks/GameController.framework; sourceTree = SDKROOT; };
|
074695362995C03900CCB7BD /* GameController.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameController.framework; path = System/Library/Frameworks/GameController.framework; sourceTree = SDKROOT; };
|
||||||
0775553F29A900BF00D876AB /* ExportOptions.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = ExportOptions.plist; sourceTree = "<group>"; };
|
|
||||||
0776EF3829A005D600AF0237 /* Steam.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Steam.xcconfig; sourceTree = "<group>"; };
|
0776EF3829A005D600AF0237 /* Steam.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Steam.xcconfig; sourceTree = "<group>"; };
|
||||||
0795A8C6299A095300D5035D /* CoreHaptics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreHaptics.framework; path = System/Library/Frameworks/CoreHaptics.framework; sourceTree = SDKROOT; };
|
0795A8C6299A095300D5035D /* CoreHaptics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreHaptics.framework; path = System/Library/Frameworks/CoreHaptics.framework; sourceTree = SDKROOT; };
|
||||||
07B634CF296391FF00B3D78D /* libMoltenVK.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libMoltenVK.dylib; path = Frameworks/MoltenVK/dylib/macOS/libMoltenVK.dylib; sourceTree = "<group>"; };
|
07B634CF296391FF00B3D78D /* libMoltenVK.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libMoltenVK.dylib; path = Frameworks/MoltenVK/dylib/macOS/libMoltenVK.dylib; sourceTree = "<group>"; };
|
||||||
|
@ -1358,7 +1357,6 @@
|
||||||
29B97314FDCFA39411CA2CEA /* RetroArch */ = {
|
29B97314FDCFA39411CA2CEA /* RetroArch */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
0775553F29A900BF00D876AB /* ExportOptions.plist */,
|
|
||||||
686201AB24B823A800EBDD95 /* RetroArch.entitlements */,
|
686201AB24B823A800EBDD95 /* RetroArch.entitlements */,
|
||||||
05D7753120A55D2700646447 /* BaseConfig.xcconfig */,
|
05D7753120A55D2700646447 /* BaseConfig.xcconfig */,
|
||||||
05422E5C2140CFC500F09961 /* Metal.xcconfig */,
|
05422E5C2140CFC500F09961 /* Metal.xcconfig */,
|
||||||
|
@ -1462,6 +1460,7 @@
|
||||||
isa = PBXNativeTarget;
|
isa = PBXNativeTarget;
|
||||||
buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "RetroArch" */;
|
buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "RetroArch" */;
|
||||||
buildPhases = (
|
buildPhases = (
|
||||||
|
076C6C0A29AE71EF000EC3CB /* ShellScript */,
|
||||||
8D1107290486CEB800E47090 /* Resources */,
|
8D1107290486CEB800E47090 /* Resources */,
|
||||||
8D11072C0486CEB800E47090 /* Sources */,
|
8D11072C0486CEB800E47090 /* Sources */,
|
||||||
8D11072E0486CEB800E47090 /* Frameworks */,
|
8D11072E0486CEB800E47090 /* Frameworks */,
|
||||||
|
@ -1559,6 +1558,25 @@
|
||||||
shellPath = /bin/sh;
|
shellPath = /bin/sh;
|
||||||
shellScript = "make -C ${SRCBASE} -f Makefile.apple HAVE_MENU=1 HAVE_CONFIGFILE=1 HAVE_PATCH=1 HAVE_DSP_FILTER=1 HAVE_REWIND=1 HAVE_SCREENSHOTS=1 HAVE_CHEATS=1 HAVE_CORE_INFO_CACHE=1 HAVE_GFX_WIDGETS=1 HAVE_QT=1 HAVE_SLANG=1 MOC=${QT_INSTALL}/bin/moc generate\n";
|
shellScript = "make -C ${SRCBASE} -f Makefile.apple HAVE_MENU=1 HAVE_CONFIGFILE=1 HAVE_PATCH=1 HAVE_DSP_FILTER=1 HAVE_REWIND=1 HAVE_SCREENSHOTS=1 HAVE_CHEATS=1 HAVE_CORE_INFO_CACHE=1 HAVE_GFX_WIDGETS=1 HAVE_QT=1 HAVE_SLANG=1 MOC=${QT_INSTALL}/bin/moc generate\n";
|
||||||
};
|
};
|
||||||
|
076C6C0A29AE71EF000EC3CB /* ShellScript */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
alwaysOutOfDate = 1;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputFileListPaths = (
|
||||||
|
);
|
||||||
|
inputPaths = (
|
||||||
|
);
|
||||||
|
outputFileListPaths = (
|
||||||
|
);
|
||||||
|
outputPaths = (
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "if [ -d \"$MIST_PATH\" -a -f \"$MIST_PATH\"/libmist.dylib ]; then\n install_name_tool -id @rpath/libmist.dylib \"$MIST_PATH\"/libmist.dylib\nfi\n";
|
||||||
|
showEnvVarsInLog = 0;
|
||||||
|
};
|
||||||
07DF7D6729A9DC570038AFFF /* ShellScript */ = {
|
07DF7D6729A9DC570038AFFF /* ShellScript */ = {
|
||||||
isa = PBXShellScriptBuildPhase;
|
isa = PBXShellScriptBuildPhase;
|
||||||
alwaysOutOfDate = 1;
|
alwaysOutOfDate = 1;
|
||||||
|
@ -1575,7 +1593,7 @@
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
shellPath = /bin/sh;
|
shellPath = /bin/sh;
|
||||||
shellScript = "\nif [ -d \"$MIST_PATH\" ]; then\n cp \"$MIST_PATH\"/mist/*.txt \"$TARGET_BUILD_DIR\"/\"$UNLOCALIZED_RESOURCES_FOLDER_PATH\"/\n\n cp \"$MIST_PATH\"/libmist.dylib \"$TARGET_BUILD_DIR\"/\"$FRAMEWORKS_FOLDER_PATH\"/\n install_name_tool -id @rpath/libmist.dylib \"$TARGET_BUILD_DIR\"/\"$FRAMEWORKS_FOLDER_PATH\"/libmist.dylib\n codesign --force --sign \"${EXPANDED_CODE_SIGN_IDENTITY}\" --timestamp -o runtime --preserve-metadata=identifier,entitlements,flags --generate-entitlement-der \"$TARGET_BUILD_DIR\"/\"$FRAMEWORKS_FOLDER_PATH\"/libmist.dylib\n\n mkdir \"$TARGET_BUILD_DIR\"/\"$EXECUTABLE_FOLDER_PATH\"/mist\n\n # this shouldn't be here, it can't be notarized\n if [ -n \"$STEAM_APPID\" ]; then\n echo \"$STEAM_APPID\" > \"$TARGET_BUILD_DIR\"/\"$EXECUTABLE_FOLDER_PATH\"/mist/steam_appid.txt\n fi\n\n cp \"$MIST_PATH\"/mist/libsteam_api.dylib \"$TARGET_BUILD_DIR\"/\"$EXECUTABLE_FOLDER_PATH\"/mist/\n codesign --force --sign \"${EXPANDED_CODE_SIGN_IDENTITY}\" --timestamp -o runtime --preserve-metadata=identifier,entitlements,flags --generate-entitlement-der \"$TARGET_BUILD_DIR\"/\"$EXECUTABLE_FOLDER_PATH\"/mist/libsteam_api.dylib\n\n cp \"$MIST_PATH\"/mist/mist \"$TARGET_BUILD_DIR\"/\"$EXECUTABLE_FOLDER_PATH\"/mist/\n codesign --force --sign \"${EXPANDED_CODE_SIGN_IDENTITY}\" --timestamp -o runtime --preserve-metadata=identifier,entitlements,flags --generate-entitlement-der \"$TARGET_BUILD_DIR\"/\"$EXECUTABLE_FOLDER_PATH\"/mist/mist\nfi\n";
|
shellScript = "\nif [ -d \"$MIST_PATH\" ]; then\n cp \"$MIST_PATH\"/mist/*.txt \"$TARGET_BUILD_DIR\"/\"$UNLOCALIZED_RESOURCES_FOLDER_PATH\"/\n\n cp \"$MIST_PATH\"/libmist.dylib \"$TARGET_BUILD_DIR\"/\"$FRAMEWORKS_FOLDER_PATH\"/\n codesign --force --sign \"${EXPANDED_CODE_SIGN_IDENTITY}\" --timestamp -o runtime --preserve-metadata=identifier,entitlements,flags --generate-entitlement-der \"$TARGET_BUILD_DIR\"/\"$FRAMEWORKS_FOLDER_PATH\"/libmist.dylib\n\n mkdir \"$TARGET_BUILD_DIR\"/\"$EXECUTABLE_FOLDER_PATH\"/mist\n\n cp \"$MIST_PATH\"/mist/libsteam_api.dylib \"$TARGET_BUILD_DIR\"/\"$EXECUTABLE_FOLDER_PATH\"/mist/\n codesign --force --sign \"${EXPANDED_CODE_SIGN_IDENTITY}\" --timestamp -o runtime --preserve-metadata=identifier,entitlements,flags --generate-entitlement-der \"$TARGET_BUILD_DIR\"/\"$EXECUTABLE_FOLDER_PATH\"/mist/libsteam_api.dylib\n\n cp \"$MIST_PATH\"/mist/mist \"$TARGET_BUILD_DIR\"/\"$EXECUTABLE_FOLDER_PATH\"/mist/\n codesign --force --sign \"${EXPANDED_CODE_SIGN_IDENTITY}\" --timestamp -o runtime --preserve-metadata=identifier,entitlements,flags --generate-entitlement-der \"$TARGET_BUILD_DIR\"/\"$EXECUTABLE_FOLDER_PATH\"/mist/mist\nfi\n";
|
||||||
};
|
};
|
||||||
/* End PBXShellScriptBuildPhase section */
|
/* End PBXShellScriptBuildPhase section */
|
||||||
|
|
||||||
|
|
|
@ -3,11 +3,8 @@
|
||||||
// RetroArch_Metal
|
// RetroArch_Metal
|
||||||
//
|
//
|
||||||
|
|
||||||
#include "BaseConfig.xcconfig"
|
|
||||||
|
|
||||||
OTHER_CFLAGS = $(inherited) -DHAVE_MAIN -DHAVE_STEAM -DHAVE_MIST -DHAVE_PRESENCE
|
OTHER_CFLAGS = $(inherited) -DHAVE_MAIN -DHAVE_STEAM -DHAVE_MIST -DHAVE_PRESENCE
|
||||||
HEADER_SEARCH_PATHS = $(inherited) $(MIST_PATH)/include
|
HEADER_SEARCH_PATHS = $(inherited) $(MIST_PATH)/include
|
||||||
OTHER_LDFLAGS = $(inherited) -L$(MIST_PATH) -lmist
|
OTHER_LDFLAGS = $(inherited) -L$(MIST_PATH) -lmist
|
||||||
|
|
||||||
DEVELOPMENT_TEAM=UK699V5ZS8
|
DEVELOPMENT_TEAM=UK699V5ZS8
|
||||||
CODE_SIGN_STYLE = Automatic
|
|
||||||
|
|
Loading…
Reference in New Issue