From 079cdfa96c84062d2e97a85ac6673b1e46964a09 Mon Sep 17 00:00:00 2001 From: Seth Kingsley Date: Sat, 17 Dec 2016 16:49:38 -0800 Subject: [PATCH 1/4] Move OTHER_CFLAGS up to the project and inherit This is to make adding -DHAVE_... flags easier. --- pkg/apple/RetroArch.xcodeproj/project.pbxproj | 258 ++++++------------ 1 file changed, 91 insertions(+), 167 deletions(-) diff --git a/pkg/apple/RetroArch.xcodeproj/project.pbxproj b/pkg/apple/RetroArch.xcodeproj/project.pbxproj index 8b2546862f..d3785b5d5a 100644 --- a/pkg/apple/RetroArch.xcodeproj/project.pbxproj +++ b/pkg/apple/RetroArch.xcodeproj/project.pbxproj @@ -77,8 +77,8 @@ 089C165DFE840E0CC02AAC07 /* InfoPlist.strings */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = InfoPlist.strings; path = OSX/en.lproj/InfoPlist.strings; sourceTree = ""; }; 1DDD58150DA1D0A300B32029 /* MainMenu.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = MainMenu.xib; path = OSX/en.lproj/MainMenu.xib; sourceTree = ""; }; 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; - 5008453A1B89300700CE6073 /* RetroArchCg.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "RetroArchCg.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - 5008453B1B89300700CE6073 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Info.plist"; path = "/../../pkg/apple/OSX/Info.plist"; sourceTree = SOURCE_ROOT; }; + 5008453A1B89300700CE6073 /* RetroArchCg.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RetroArchCg.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 5008453B1B89300700CE6073 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = /../../pkg/apple/OSX/Info.plist; sourceTree = SOURCE_ROOT; }; 5061C8A31AE47E510080AE14 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; }; 509F0C9C1AA23AFC00619ECC /* griffin_objc.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = griffin_objc.m; path = ../../griffin/griffin_objc.m; sourceTree = ""; }; 840222FB1A889EE2009AB261 /* griffin.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = griffin.c; path = ../../griffin/griffin.c; sourceTree = SOURCE_ROOT; }; @@ -90,7 +90,7 @@ 84DD5EB21A89E6C0007336C1 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = /System/Library/Frameworks/AudioUnit.framework; sourceTree = ""; }; 84DD5EB41A89E737007336C1 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = ../../../../../../System/Library/Frameworks/IOKit.framework; sourceTree = ""; }; 84DD5EB71A89F1C7007336C1 /* retroarch.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = retroarch.icns; path = ../../media/retroarch.icns; sourceTree = ""; }; - 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "Info.plist"; path = "OSX/Info.plist"; sourceTree = ""; }; + 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = OSX/Info.plist; sourceTree = ""; }; 8D1107320486CEB800E47090 /* RetroArch.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RetroArch.app; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ @@ -378,53 +378,15 @@ "$(SRCROOT)/../../gfx/include", "$(SRCROOT)/../../libretro-common/include", ); - INFOPLIST_FILE = "OSX/Info.plist"; + INFOPLIST_FILE = OSX/Info.plist; INSTALL_PATH = "$(HOME)/Applications"; MACOSX_DEPLOYMENT_TARGET = 10.5; OTHER_CFLAGS = ( - "-DHAVE_GRIFFIN", - "-DHAVE_UPDATE_ASSETS", - "-DHAVE_LANGEXTRA", - "-DHAVE_CHEEVOS", - "-DHAVE_IMAGEVIEWER", - "-DHAVE_CORETEXT", - "-DHAVE_IOHIDMANAGER", - "-DHAVE_RGUI", - "-DHAVE_MENU", - "-DOSX", - "-DHAVE_OPENGL", - "-DHAVE_FBO", - "-DHAVE_CC_RESAMPLER", - "-DHAVE_GLSL", - "-DINLINE=inline", - "-D__LIBRETRO__", - "-DHAVE_COREAUDIO", - "-DHAVE_DYNAMIC", - "-DHAVE_OVERLAY", - "-DHAVE_ZLIB", - "-DHAVE_RPNG", - "-DHAVE_RJPEG", - "-DHAVE_RBMP", - "-DHAVE_RTGA", - "-DHAVE_COCOA", - "-DHAVE_MAIN", - "-DSINC_LOWER_QUALITY", - "-DHAVE_NETWORKGAMEPAD", - "-DHAVE_NETWORKING", - "-DRARCH_INTERNAL", - "-DHAVE_THREADS", - "-DHAVE_DYLIB", + "$(inherited)", "-DHAVE_CG", - "-DHAVE_7ZIP", - "-DHAVE_MATERIALUI", - "-DHAVE_HID", - "-DHAVE_XMB", - "-DHAVE_SHADERPIPELINE", - "-DHAVE_MMAP", - "-DHAVE_LIBRETRODB", ); PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = YES; - PRODUCT_NAME = "RetroArchCg"; + PRODUCT_NAME = RetroArchCg; }; name = Debug; }; @@ -445,53 +407,15 @@ "$(SRCROOT)/../../gfx/include", "$(SRCROOT)/../../libretro-common/include", ); - INFOPLIST_FILE = "OSX/Info.plist"; + INFOPLIST_FILE = OSX/Info.plist; INSTALL_PATH = "$(HOME)/Applications"; MACOSX_DEPLOYMENT_TARGET = 10.5; OTHER_CFLAGS = ( - "-DHAVE_GRIFFIN", - "-DHAVE_UPDATE_ASSETS", - "-DHAVE_LANGEXTRA", - "-DHAVE_CHEEVOS", - "-DHAVE_IMAGEVIEWER", - "-DHAVE_IOHIDMANAGER", - "-DHAVE_CORETEXT", - "-DHAVE_RGUI", - "-DHAVE_MENU", - "-DOSX", - "-DHAVE_OPENGL", - "-DHAVE_FBO", - "-DHAVE_CC_RESAMPLER", - "-DHAVE_GLSL", - "-DINLINE=inline", - "-D__LIBRETRO__", - "-DHAVE_COREAUDIO", - "-DHAVE_DYNAMIC", - "-DHAVE_OVERLAY", - "-DHAVE_ZLIB", - "-DHAVE_RPNG", - "-DHAVE_RJPEG", - "-DHAVE_RBMP", - "-DHAVE_RTGA", - "-DHAVE_COCOA", - "-DHAVE_MAIN", - "-DSINC_LOWER_QUALITY", - "-DHAVE_NETWORKGAMEPAD", - "-DHAVE_NETWORKING", - "-DRARCH_INTERNAL", - "-DHAVE_THREADS", - "-DHAVE_DYLIB", + "$(inherited)", "-DHAVE_CG", - "-DHAVE_7ZIP", - "-DHAVE_MATERIALUI", - "-DHAVE_HID", - "-DHAVE_XMB", - "-DHAVE_SHADERPIPELINE", - "-DHAVE_MMAP", - "-DHAVE_LIBRETRODB", ); PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = YES; - PRODUCT_NAME = "RetroArchCg"; + PRODUCT_NAME = RetroArchCg; }; name = Release; }; @@ -517,47 +441,6 @@ INFOPLIST_FILE = "$(SRCROOT)/OSX/Info.plist"; INSTALL_PATH = "$(HOME)/Applications"; MACOSX_DEPLOYMENT_TARGET = 10.5; - OTHER_CFLAGS = ( - "-DHAVE_GRIFFIN", - "-DHAVE_UPDATE_ASSETS", - "-DHAVE_LANGEXTRA", - "-DHAVE_CHEEVOS", - "-DHAVE_IMAGEVIEWER", - "-DHAVE_CORETEXT", - "-DHAVE_IOHIDMANAGER", - "-DHAVE_RGUI", - "-DHAVE_MENU", - "-DOSX", - "-DHAVE_OPENGL", - "-DHAVE_FBO", - "-DHAVE_CC_RESAMPLER", - "-DHAVE_GLSL", - "-DINLINE=inline", - "-D__LIBRETRO__", - "-DHAVE_COREAUDIO", - "-DHAVE_DYNAMIC", - "-DHAVE_OVERLAY", - "-DHAVE_ZLIB", - "-DHAVE_RPNG", - "-DHAVE_RJPEG", - "-DHAVE_RBMP", - "-DHAVE_RTGA", - "-DHAVE_COCOA", - "-DHAVE_MAIN", - "-DSINC_LOWER_QUALITY", - "-DHAVE_NETWORKGAMEPAD", - "-DHAVE_NETWORKING", - "-DRARCH_INTERNAL", - "-DHAVE_THREADS", - "-DHAVE_DYLIB", - "-DHAVE_7ZIP", - "-DHAVE_MATERIALUI", - "-DHAVE_HID", - "-DHAVE_XMB", - "-DHAVE_SHADERPIPELINE", - "-DHAVE_MMAP", - "-DHAVE_LIBRETRODB", - ); PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = YES; PRODUCT_NAME = RetroArch; }; @@ -583,47 +466,6 @@ INFOPLIST_FILE = "$(SRCROOT)/OSX/Info.plist"; INSTALL_PATH = "$(HOME)/Applications"; MACOSX_DEPLOYMENT_TARGET = 10.5; - OTHER_CFLAGS = ( - "-DHAVE_GRIFFIN", - "-DHAVE_UPDATE_ASSETS", - "-DHAVE_LANGEXTRA", - "-DHAVE_CHEEVOS", - "-DHAVE_IMAGEVIEWER", - "-DHAVE_IOHIDMANAGER", - "-DHAVE_CORETEXT", - "-DHAVE_RGUI", - "-DHAVE_MENU", - "-DOSX", - "-DHAVE_OPENGL", - "-DHAVE_FBO", - "-DHAVE_CC_RESAMPLER", - "-DHAVE_GLSL", - "-DINLINE=inline", - "-D__LIBRETRO__", - "-DHAVE_COREAUDIO", - "-DHAVE_DYNAMIC", - "-DHAVE_OVERLAY", - "-DHAVE_ZLIB", - "-DHAVE_RPNG", - "-DHAVE_RJPEG", - "-DHAVE_RBMP", - "-DHAVE_RTGA", - "-DHAVE_COCOA", - "-DHAVE_MAIN", - "-DSINC_LOWER_QUALITY", - "-DHAVE_NETWORKGAMEPAD", - "-DHAVE_NETWORKING", - "-DRARCH_INTERNAL", - "-DHAVE_THREADS", - "-DHAVE_DYLIB", - "-DHAVE_7ZIP", - "-DHAVE_MATERIALUI", - "-DHAVE_HID", - "-DHAVE_XMB", - "-DHAVE_SHADERPIPELINE", - "-DHAVE_MMAP", - "-DHAVE_LIBRETRODB", - ); PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = YES; PRODUCT_NAME = RetroArch; }; @@ -638,6 +480,47 @@ GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 10.5; ONLY_ACTIVE_ARCH = NO; + OTHER_CFLAGS = ( + "-DHAVE_GRIFFIN", + "-DHAVE_UPDATE_ASSETS", + "-DHAVE_LANGEXTRA", + "-DHAVE_CHEEVOS", + "-DHAVE_IMAGEVIEWER", + "-DHAVE_IOHIDMANAGER", + "-DHAVE_CORETEXT", + "-DHAVE_RGUI", + "-DHAVE_MENU", + "-DOSX", + "-DHAVE_OPENGL", + "-DHAVE_FBO", + "-DHAVE_CC_RESAMPLER", + "-DHAVE_GLSL", + "-DINLINE=inline", + "-D__LIBRETRO__", + "-DHAVE_COREAUDIO", + "-DHAVE_DYNAMIC", + "-DHAVE_OVERLAY", + "-DHAVE_ZLIB", + "-DHAVE_RPNG", + "-DHAVE_RJPEG", + "-DHAVE_RBMP", + "-DHAVE_RTGA", + "-DHAVE_COCOA", + "-DHAVE_MAIN", + "-DSINC_LOWER_QUALITY", + "-DHAVE_NETWORKGAMEPAD", + "-DHAVE_NETWORKING", + "-DRARCH_INTERNAL", + "-DHAVE_THREADS", + "-DHAVE_DYLIB", + "-DHAVE_7ZIP", + "-DHAVE_MATERIALUI", + "-DHAVE_HID", + "-DHAVE_XMB", + "-DHAVE_SHADERPIPELINE", + "-DHAVE_MMAP", + "-DHAVE_LIBRETRODB", + ); PREBINDING = NO; SDKROOT = macosx; }; @@ -650,6 +533,47 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 10.5; + OTHER_CFLAGS = ( + "-DHAVE_GRIFFIN", + "-DHAVE_UPDATE_ASSETS", + "-DHAVE_LANGEXTRA", + "-DHAVE_CHEEVOS", + "-DHAVE_IMAGEVIEWER", + "-DHAVE_IOHIDMANAGER", + "-DHAVE_CORETEXT", + "-DHAVE_RGUI", + "-DHAVE_MENU", + "-DOSX", + "-DHAVE_OPENGL", + "-DHAVE_FBO", + "-DHAVE_CC_RESAMPLER", + "-DHAVE_GLSL", + "-DINLINE=inline", + "-D__LIBRETRO__", + "-DHAVE_COREAUDIO", + "-DHAVE_DYNAMIC", + "-DHAVE_OVERLAY", + "-DHAVE_ZLIB", + "-DHAVE_RPNG", + "-DHAVE_RJPEG", + "-DHAVE_RBMP", + "-DHAVE_RTGA", + "-DHAVE_COCOA", + "-DHAVE_MAIN", + "-DSINC_LOWER_QUALITY", + "-DHAVE_NETWORKGAMEPAD", + "-DHAVE_NETWORKING", + "-DRARCH_INTERNAL", + "-DHAVE_THREADS", + "-DHAVE_DYLIB", + "-DHAVE_7ZIP", + "-DHAVE_MATERIALUI", + "-DHAVE_HID", + "-DHAVE_XMB", + "-DHAVE_SHADERPIPELINE", + "-DHAVE_MMAP", + "-DHAVE_LIBRETRODB", + ); PREBINDING = NO; SDKROOT = macosx; }; From b1c6317ba5bb8cfa2938fd46174ea32ea72cb4bb Mon Sep 17 00:00:00 2001 From: Seth Kingsley Date: Sat, 17 Dec 2016 16:54:31 -0800 Subject: [PATCH 2/4] Return non-zero from rarch_main() on failure All platforms that test this check for != 0 --- frontend/frontend.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/frontend.c b/frontend/frontend.c index 19d229935b..7c00d6c71a 100644 --- a/frontend/frontend.c +++ b/frontend/frontend.c @@ -118,7 +118,7 @@ int rarch_main(int argc, char *argv[], void *data) CONTENT_MODE_LOAD_FROM_CLI, NULL, NULL)) - return 0; + return 1; } ui_companion_driver_init_first(); From b690fb2abc85f5820ffbd828e939a097bb1b7913 Mon Sep 17 00:00:00 2001 From: Seth Kingsley Date: Sat, 17 Dec 2016 16:56:40 -0800 Subject: [PATCH 3/4] Use native getopt_long() on macOS --- pkg/apple/RetroArch.xcodeproj/project.pbxproj | 2 ++ retroarch.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/pkg/apple/RetroArch.xcodeproj/project.pbxproj b/pkg/apple/RetroArch.xcodeproj/project.pbxproj index d3785b5d5a..b09687894a 100644 --- a/pkg/apple/RetroArch.xcodeproj/project.pbxproj +++ b/pkg/apple/RetroArch.xcodeproj/project.pbxproj @@ -520,6 +520,7 @@ "-DHAVE_SHADERPIPELINE", "-DHAVE_MMAP", "-DHAVE_LIBRETRODB", + "-DHAVE_GETOPT_LONG", ); PREBINDING = NO; SDKROOT = macosx; @@ -573,6 +574,7 @@ "-DHAVE_SHADERPIPELINE", "-DHAVE_MMAP", "-DHAVE_LIBRETRODB", + "-DHAVE_GETOPT_LONG", ); PREBINDING = NO; SDKROOT = macosx; diff --git a/retroarch.c b/retroarch.c index af54841baa..0670ade574 100644 --- a/retroarch.c +++ b/retroarch.c @@ -511,7 +511,7 @@ static void retroarch_parse_input(int argc, char *argv[]) int c = getopt_long(argc, argv, optstring, opts, NULL); #if 0 - RARCH_LOG("c is: %c, optarg is: [%s]\n", c, string_is_empty(optarg) ? "" : optarg); + fprintf(stderr, "c is: %c (%d), optarg is: [%s]\n", c, c, string_is_empty(optarg) ? "" : optarg); #endif if (c == -1) From d79cdffe37da140793e36a49f16010a1afbae482 Mon Sep 17 00:00:00 2001 From: Seth Kingsley Date: Sat, 17 Dec 2016 21:06:07 -0800 Subject: [PATCH 4/4] Don't set config path until open_default_config_file() This allows overriding of the config with --config --- configuration.c | 2 ++ frontend/drivers/platform_darwin.m | 5 ----- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/configuration.c b/configuration.c index 0f6ee0a82c..b44e5e27f7 100644 --- a/configuration.c +++ b/configuration.c @@ -1422,6 +1422,8 @@ static config_file_t *open_default_config_file(void) if (!fill_pathname_application_data(application_data, sizeof(application_data))) return NULL; + // Group config file with menu configs, remaps, etc: + strlcat(application_data, "/config", sizeof(application_data)); path_mkdir(application_data); diff --git a/frontend/drivers/platform_darwin.m b/frontend/drivers/platform_darwin.m index 88f1d2bedd..02b5476c99 100644 --- a/frontend/drivers/platform_darwin.m +++ b/frontend/drivers/platform_darwin.m @@ -352,8 +352,6 @@ static void frontend_darwin_get_environment_settings(int *argc, char *argv[], fill_pathname_join(g_defaults.dir.assets, home_dir_buf, "assets", sizeof(g_defaults.dir.assets)); fill_pathname_join(g_defaults.dir.system, home_dir_buf, "system", sizeof(g_defaults.dir.system)); fill_pathname_join(g_defaults.dir.menu_config, home_dir_buf, "config", sizeof(g_defaults.dir.menu_config)); - fill_pathname_join(g_defaults.path.config, g_defaults.dir.menu_config, - file_path_str(FILE_PATH_MAIN_CONFIG), sizeof(g_defaults.path.config)); fill_pathname_join(g_defaults.dir.remap, g_defaults.dir.menu_config, "remaps", sizeof(g_defaults.dir.remap)); fill_pathname_join(g_defaults.dir.database, home_dir_buf, "database/rdb", sizeof(g_defaults.dir.database)); fill_pathname_join(g_defaults.dir.cursor, home_dir_buf, "database/cursors", sizeof(g_defaults.dir.cursor)); @@ -361,7 +359,6 @@ static void frontend_darwin_get_environment_settings(int *argc, char *argv[], fill_pathname_join(g_defaults.dir.thumbnails, home_dir_buf, "thumbnails", sizeof(g_defaults.dir.thumbnails)); fill_pathname_join(g_defaults.dir.sram, home_dir_buf, "saves", sizeof(g_defaults.dir.sram)); fill_pathname_join(g_defaults.dir.savestate, home_dir_buf, "states", sizeof(g_defaults.dir.savestate)); - fill_pathname_join(g_defaults.dir.menu_config, home_dir_buf, "config", sizeof(g_defaults.dir.menu_config)); #if defined(IOS) fill_pathname_join(g_defaults.dir.playlist, home_dir_buf, "playlists", sizeof(g_defaults.dir.playlist)); #endif @@ -378,8 +375,6 @@ static void frontend_darwin_get_environment_settings(int *argc, char *argv[], fill_pathname_join(g_defaults.dir.playlist, application_data, "playlists", sizeof(g_defaults.dir.playlist)); fill_pathname_join(g_defaults.dir.thumbnails, application_data, "thumbnails", sizeof(g_defaults.dir.thumbnails)); fill_pathname_join(g_defaults.dir.menu_config, application_data, "config", sizeof(g_defaults.dir.menu_config)); - fill_pathname_join(g_defaults.path.config, g_defaults.dir.menu_config, - file_path_str(FILE_PATH_MAIN_CONFIG), sizeof(g_defaults.path.config)); fill_pathname_join(g_defaults.dir.remap, g_defaults.dir.menu_config, "remaps", sizeof(g_defaults.dir.remap)); fill_pathname_join(g_defaults.dir.core_assets, application_data, "downloads", sizeof(g_defaults.dir.core_assets)); fill_pathname_join(g_defaults.dir.screenshot, application_data, "screenshots", sizeof(g_defaults.dir.screenshot));